Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GENERAL: memory leaks #69

Open
mgerhardy opened this issue Dec 23, 2015 · 2 comments
Open

GENERAL: memory leaks #69

mgerhardy opened this issue Dec 23, 2015 · 2 comments
Assignees
Labels

Comments

@mgerhardy
Copy link
Owner

=================================================================
==17793==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 275424 byte(s) in 906 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7b4540 in ClientMapTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:43
    #2 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #3 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #4 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #5 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #6 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #7 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #8 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #9 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #10 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #11 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Direct leak of 127725 byte(s) in 1965 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7f1917181d6c in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11fd6c)

Direct leak of 6192 byte(s) in 18 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x733ee6 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #2 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #3 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #4 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #5 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #6 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #7 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #8 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #9 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #10 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #11 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Direct leak of 5848 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x736a9c in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #2 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #3 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #4 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #5 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #6 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #7 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #8 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #9 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #10 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #11 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Direct leak of 325 byte(s) in 5 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7f1917181d6c in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11fd6c)
    #2 0xbebebebebebebebd  (<unknown module>)

Direct leak of 160 byte(s) in 5 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x693fee in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x68cb98 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x6879d7 in std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x6841f3 in void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:412
    #5 0x67f8e9 in std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923
    #6 0x8c8ec9 in IProtocolListMessage::IProtocolListMessage(unsigned char, ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/network/IProtocolMessage.h:86
    #7 0x8c9c4a in PlayerListMessage::PlayerListMessage(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/network/IProtocolMessage.h:158
    #8 0x8c9c16 in PlayerListMessage::Factory::create(ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/network/IProtocolMessage.h:158
    #9 0x8d2eaa in IFactoryRegistry<unsigned char, IProtocolMessage, ByteStream>::create(unsigned char const&, ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/common/IFactoryRegistry.h:43
    #10 0x8c7e80 in ProtocolMessageFactory::createMsg(ByteStream&) const /home/mgerhardy/dev/caveexpress/src/modules/network/ProtocolMessageFactory.cpp:126
    #11 0x7a52de in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:415
    #12 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Direct leak of 66 byte(s) in 2 object(s) allocated from:
    #0 0x7f19189829aa in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x989aa)
    #1 0x7f19158f7c18 in XGetWindowProperty (/usr/lib/x86_64-linux-gnu/libX11.so.6+0x23c18)

Direct leak of 48 byte(s) in 4 object(s) allocated from:
    #0 0x7f19189829aa in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x989aa)
    #1 0x7f19167fd429 in __strdup (/lib/x86_64-linux-gnu/libc.so.6+0x8b429)

Direct leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189829aa in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x989aa)
    #1 0x7f19182779e1 in SDLNet_AllocSocketSet (/usr/lib/x86_64-linux-gnu/libSDL2_net-2.0.so.0+0x29e1)

Indirect leak of 14967 byte(s) in 697 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x7b47d9 in ClientMapTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:43
    #4 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #5 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #6 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #7 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #8 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #9 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #10 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #11 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #12 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #13 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 11648 byte(s) in 56 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a4dec in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:27
    #2 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #3 0x7b4242 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:10
    #4 0x7b47d9 in ClientMapTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:43
    #5 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #6 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #7 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #8 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #9 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #10 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #11 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #12 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #13 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #14 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 8624 byte(s) in 77 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8b5a81 in TextureCache::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, TextureDefinitionCoords const&, TextureDefinitionTrim const&, bool) /home/mgerhardy/dev/caveexpress/src/modules/textures/TextureCache.cpp:26
    #2 0x8b537f in TextureCache::init(IFrontend*, TextureDefinition&) /home/mgerhardy/dev/caveexpress/src/modules/textures/TextureCache.cpp:86
    #3 0x7e10b3 in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:182
    #4 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #5 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #6 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #7 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #8 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #9 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 6624 byte(s) in 69 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x6cfe6f in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x6cdd69 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x6caa82 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_node() /usr/include/c++/5/bits/stl_tree.h:491
    #4 0x71faee in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:545
    #5 0x71dd58 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:2170
    #6 0x71bd2b in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_map.h:483
    #7 0x8cdb75 in MapSettingsMessage::MapSettingsMessage(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/network/messages/MapSettingsMessage.h:28
    #8 0x8cd9b0 in MapSettingsMessage::Factory::create(ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/network/messages/MapSettingsMessage.h:19
    #9 0x8d2eaa in IFactoryRegistry<unsigned char, IProtocolMessage, ByteStream>::create(unsigned char const&, ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/common/IFactoryRegistry.h:43
    #10 0x8c7e80 in ProtocolMessageFactory::createMsg(ByteStream&) const /home/mgerhardy/dev/caveexpress/src/modules/network/ProtocolMessageFactory.cpp:126
    #11 0x7a52de in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:415
    #12 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 3744 byte(s) in 18 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x89db39 in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #2 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #3 0x733b8c in caveexpress::ClientCaveTile::ClientCaveTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:11
    #4 0x734104 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #5 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #6 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #7 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #8 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #9 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #10 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #11 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #12 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #13 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #14 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 3536 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x89db39 in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #2 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #3 0x73688e in caveexpress::ClientWindowTile::ClientWindowTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:9
    #4 0x736cba in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #5 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #6 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #7 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #8 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #9 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #10 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #11 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #12 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #13 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #14 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 2338 byte(s) in 77 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x8b5a8f in TextureCache::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, TextureDefinitionCoords const&, TextureDefinitionTrim const&, bool) /home/mgerhardy/dev/caveexpress/src/modules/textures/TextureCache.cpp:26
    #4 0x8b537f in TextureCache::init(IFrontend*, TextureDefinition&) /home/mgerhardy/dev/caveexpress/src/modules/textures/TextureCache.cpp:86
    #5 0x7e10b3 in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:182
    #6 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #7 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #8 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #9 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #10 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #11 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 1848 byte(s) in 77 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8b7480 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Texture*>(Texture*) /usr/include/c++/5/bits/shared_ptr_base.h:574
    #2 0x8b68a0 in std::__shared_ptr<Texture, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<Texture>(Texture*) /usr/include/c++/5/bits/shared_ptr_base.h:882
    #3 0x8b5f38 in std::shared_ptr<Texture>::shared_ptr<Texture>(Texture*) /usr/include/c++/5/bits/shared_ptr.h:117
    #4 0x8b5d12 in TextureCache::create(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, TextureDefinitionCoords const&, TextureDefinitionTrim const&, bool) /home/mgerhardy/dev/caveexpress/src/modules/textures/TextureCache.cpp:34
    #5 0x8b537f in TextureCache::init(IFrontend*, TextureDefinition&) /home/mgerhardy/dev/caveexpress/src/modules/textures/TextureCache.cpp:86
    #6 0x7e10b3 in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:182
    #7 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #8 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #9 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #10 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #11 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #12 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 1344 byte(s) in 56 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7b1008 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Sprite*>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:574
    #2 0x7b077e in std::__shared_ptr<Sprite, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:882
    #3 0x7aff3c in std::shared_ptr<Sprite>::shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr.h:117
    #4 0x8a5170 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:46
    #5 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #6 0x7b4242 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:10
    #7 0x7b47d9 in ClientMapTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:43
    #8 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #9 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #10 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #11 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #12 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #13 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #14 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #15 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #16 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #17 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 1117 byte(s) in 48 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x8a4e01 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:27
    #4 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #5 0x7b4242 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:10
    #6 0x7b47d9 in ClientMapTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:43
    #7 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #8 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #9 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #10 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #11 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #12 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 896 byte(s) in 56 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x779494 in __gnu_cxx::new_allocator<std::shared_ptr<Texture> >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x779247 in std::allocator_traits<std::allocator<std::shared_ptr<Texture> > >::allocate(std::allocator<std::shared_ptr<Texture> >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x77887b in std::_Vector_base<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x81a2b5 in void std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_emplace_back_aux<std::shared_ptr<Texture> const&>(std::shared_ptr<Texture> const&) /usr/include/c++/5/bits/vector.tcc:412
    #5 0x81a22d in std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::push_back(std::shared_ptr<Texture> const&) /usr/include/c++/5/bits/stl_vector.h:923
    #6 0x89df0e in Sprite::addFrame(Layer, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:59
    #7 0x8a50e5 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:40
    #8 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #9 0x7b4242 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:10
    #10 0x7b47d9 in ClientMapTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:43
    #11 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #12 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #13 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #14 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #15 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 576 byte(s) in 18 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x779494 in __gnu_cxx::new_allocator<std::shared_ptr<Texture> >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x779247 in std::allocator_traits<std::allocator<std::shared_ptr<Texture> > >::allocate(std::allocator<std::shared_ptr<Texture> >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x77887b in std::_Vector_base<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x8a1510 in std::shared_ptr<Texture>* std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > > >(unsigned long, __gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > >, __gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > >) /usr/include/c++/5/bits/stl_vector.h:1224
    #5 0x8a0464 in std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::operator=(std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const&) /usr/include/c++/5/bits/vector.tcc:195
    #6 0x89d967 in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:21
    #7 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #8 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #9 0x733b8c in caveexpress::ClientCaveTile::ClientCaveTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:11
    #10 0x734104 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #11 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #12 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #13 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #14 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #15 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 544 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x779494 in __gnu_cxx::new_allocator<std::shared_ptr<Texture> >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x779247 in std::allocator_traits<std::allocator<std::shared_ptr<Texture> > >::allocate(std::allocator<std::shared_ptr<Texture> >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x77887b in std::_Vector_base<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x8a1510 in std::shared_ptr<Texture>* std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > > >(unsigned long, __gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > >, __gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > >) /usr/include/c++/5/bits/stl_vector.h:1224
    #5 0x8a0464 in std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::operator=(std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const&) /usr/include/c++/5/bits/vector.tcc:195
    #6 0x89d967 in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:21
    #7 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #8 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #9 0x73688e in caveexpress::ClientWindowTile::ClientWindowTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:9
    #10 0x736cba in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #11 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #12 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #13 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #14 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #15 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 470 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x736cba in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #4 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #5 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #6 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #7 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #8 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #9 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #10 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #11 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #12 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #13 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 470 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x73688e in caveexpress::ClientWindowTile::ClientWindowTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:9
    #4 0x736cba in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #5 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #6 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #7 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #8 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #9 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #10 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #11 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #12 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #13 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #14 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 470 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #4 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #5 0x73688e in caveexpress::ClientWindowTile::ClientWindowTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:9
    #6 0x736cba in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #7 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #8 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #9 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #10 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #11 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #12 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 448 byte(s) in 56 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3a9a in __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a32c4 in std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a28cb in std::_Bvector_base<std::allocator<bool> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_bvector.h:492
    #4 0x8a1e84 in std::vector<bool, std::allocator<bool> >::_M_insert_aux(std::_Bit_iterator, bool) /usr/include/c++/5/bits/vector.tcc:790
    #5 0x8a0a92 in std::vector<bool, std::allocator<bool> >::push_back(bool) /usr/include/c++/5/bits/stl_bvector.h:926
    #6 0x89df3b in Sprite::addFrame(Layer, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:61
    #7 0x8a50e5 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:40
    #8 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #9 0x7b4242 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:10
    #10 0x7b47d9 in ClientMapTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:43
    #11 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #12 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #13 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #14 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #15 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 432 byte(s) in 18 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7b1008 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Sprite*>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:574
    #2 0x7b077e in std::__shared_ptr<Sprite, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:882
    #3 0x7aff3c in std::shared_ptr<Sprite>::shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr.h:117
    #4 0x7b42c9 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #5 0x733b8c in caveexpress::ClientCaveTile::ClientCaveTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:11
    #6 0x734104 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #7 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #8 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #9 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #10 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #11 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #12 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 408 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7b1008 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Sprite*>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:574
    #2 0x7b077e in std::__shared_ptr<Sprite, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:882
    #3 0x7aff3c in std::shared_ptr<Sprite>::shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr.h:117
    #4 0x7b42c9 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #5 0x73688e in caveexpress::ClientWindowTile::ClientWindowTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:9
    #6 0x736cba in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #7 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #8 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #9 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #10 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #11 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #12 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 293 byte(s) in 16 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x726f2d in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::piecewise_construct_t, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<>) /usr/include/c++/5/tuple:1161
    #4 0x725dab in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/ext/new_allocator.h:120
    #5 0x724d23 in std::enable_if<std::__and_<std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::__construct_helper<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >::type>::value, void>::type std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::_S_construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/alloc_traits.h:256
    #6 0x7236dc in decltype (_S_construct({parm#1}, {parm#2}, (forward<std::piecewise_construct_t const&>)({parm#3}), (forward<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> >)({parm#3}), (forward<std::tuple<> >)({parm#3}))) std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/alloc_traits.h:402
    #7 0x721c4a in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_construct_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:529
    #8 0x71fb35 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:546
    #9 0x71dd58 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:2170
    #10 0x71bd2b in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_map.h:483
    #11 0x8cdb75 in MapSettingsMessage::MapSettingsMessage(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/network/messages/MapSettingsMessage.h:28
    #12 0x8cd9b0 in MapSettingsMessage::Factory::create(ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/network/messages/MapSettingsMessage.h:19
    #13 0x8d2eaa in IFactoryRegistry<unsigned char, IProtocolMessage, ByteStream>::create(unsigned char const&, ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/common/IFactoryRegistry.h:43
    #14 0x8c7e80 in ProtocolMessageFactory::createMsg(ByteStream&) const /home/mgerhardy/dev/caveexpress/src/modules/network/ProtocolMessageFactory.cpp:126
    #15 0x7a52de in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:415
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 272 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7ae446 in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:240
    #2 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #3 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #4 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #5 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #6 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #7 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #8 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #9 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #10 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #11 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 224 byte(s) in 56 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3f64 in __gnu_cxx::new_allocator<int>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a36f7 in std::allocator_traits<std::allocator<int> >::allocate(std::allocator<int>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a2de1 in std::_Vector_base<int, std::allocator<int> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x8a19b7 in void std::vector<int, std::allocator<int> >::_M_emplace_back_aux<int const&>(int const&) /usr/include/c++/5/bits/vector.tcc:412
    #5 0x8a09ab in std::vector<int, std::allocator<int> >::push_back(int const&) /usr/include/c++/5/bits/stl_vector.h:923
    #6 0x89df25 in Sprite::addFrame(Layer, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:60
    #7 0x8a50e5 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:40
    #8 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #9 0x7b4242 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:10
    #10 0x7b47d9 in ClientMapTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:43
    #11 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #12 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #13 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #14 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #15 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 208 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a4dec in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:27
    #2 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #3 0x7611da in caveexpress::UIGameHelpWindow::createSprite(EntityType const&, Animation const&, float, float) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:62
    #4 0x7624cc in caveexpress::UIGameHelpWindow::addPackageHelp(UINode*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:119
    #5 0x760ae3 in caveexpress::UIGameHelpWindow::UIGameHelpWindow(IFrontend*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:30
    #6 0x66e910 in caveexpress::CaveExpress::initUI(IFrontend*, ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/caveexpress/main/CaveExpress.cpp:393
    #7 0x7e12cb in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:191
    #8 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #9 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #10 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #11 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #12 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #13 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 208 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x89db39 in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #2 0x7ad89a in ClientEntity::setAnimationType(Animation const&) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:161
    #3 0x7ae6be in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:241
    #4 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #5 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #6 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #7 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #8 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #9 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #10 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #11 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #12 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #13 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 144 byte(s) in 18 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3a9a in __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a32c4 in std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a28cb in std::_Bvector_base<std::allocator<bool> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_bvector.h:492
    #4 0x8a101d in std::vector<bool, std::allocator<bool> >::_M_initialize(unsigned long) /usr/include/c++/5/bits/stl_bvector.h:1084
    #5 0x8a01bc in std::vector<bool, std::allocator<bool> >::vector(std::vector<bool, std::allocator<bool> > const&) /usr/include/c++/5/bits/stl_bvector.h:614
    #6 0x89d6e4 in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:18
    #7 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #8 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #9 0x733b8c in caveexpress::ClientCaveTile::ClientCaveTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:11
    #10 0x734104 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #11 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #12 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #13 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #14 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #15 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 144 byte(s) in 18 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3f64 in __gnu_cxx::new_allocator<int>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a36f7 in std::allocator_traits<std::allocator<int> >::allocate(std::allocator<int>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a2de1 in std::_Vector_base<int, std::allocator<int> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x8a261a in std::_Vector_base<int, std::allocator<int> >::_M_create_storage(unsigned long) /usr/include/c++/5/bits/stl_vector.h:185
    #5 0x8a0daf in std::_Vector_base<int, std::allocator<int> >::_Vector_base(unsigned long, std::allocator<int> const&) /usr/include/c++/5/bits/stl_vector.h:136
    #6 0x8a0063 in std::vector<int, std::allocator<int> >::vector(std::vector<int, std::allocator<int> > const&) /usr/include/c++/5/bits/stl_vector.h:320
    #7 0x89d6cd in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:18
    #8 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #9 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #10 0x733b8c in caveexpress::ClientCaveTile::ClientCaveTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:11
    #11 0x734104 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #12 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #13 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #14 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #15 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #16 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #17 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #18 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #19 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #20 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #21 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 136 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3a9a in __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a32c4 in std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a28cb in std::_Bvector_base<std::allocator<bool> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_bvector.h:492
    #4 0x8a101d in std::vector<bool, std::allocator<bool> >::_M_initialize(unsigned long) /usr/include/c++/5/bits/stl_bvector.h:1084
    #5 0x8a01bc in std::vector<bool, std::allocator<bool> >::vector(std::vector<bool, std::allocator<bool> > const&) /usr/include/c++/5/bits/stl_bvector.h:614
    #6 0x89d6e4 in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:18
    #7 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #8 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #9 0x73688e in caveexpress::ClientWindowTile::ClientWindowTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:9
    #10 0x736cba in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #11 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #12 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #13 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #14 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #15 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 136 byte(s) in 17 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3f64 in __gnu_cxx::new_allocator<int>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a36f7 in std::allocator_traits<std::allocator<int> >::allocate(std::allocator<int>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a2de1 in std::_Vector_base<int, std::allocator<int> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x8a261a in std::_Vector_base<int, std::allocator<int> >::_M_create_storage(unsigned long) /usr/include/c++/5/bits/stl_vector.h:185
    #5 0x8a0daf in std::_Vector_base<int, std::allocator<int> >::_Vector_base(unsigned long, std::allocator<int> const&) /usr/include/c++/5/bits/stl_vector.h:136
    #6 0x8a0063 in std::vector<int, std::allocator<int> >::vector(std::vector<int, std::allocator<int> > const&) /usr/include/c++/5/bits/stl_vector.h:320
    #7 0x89d6cd in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:18
    #8 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #9 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #10 0x73688e in caveexpress::ClientWindowTile::ClientWindowTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:9
    #11 0x736cba in caveexpress::ClientWindowTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientWindowTile.cpp:30
    #12 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #13 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #14 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #15 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #16 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #17 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #18 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #19 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #20 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #21 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 119 byte(s) in 7 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x733b8c in caveexpress::ClientCaveTile::ClientCaveTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:11
    #4 0x734104 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #5 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #6 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #7 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #8 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #9 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #10 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #11 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #12 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #13 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #14 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 119 byte(s) in 7 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #4 0x7b42b7 in ClientMapTile::ClientMapTile(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientMapTile.cpp:13
    #5 0x733b8c in caveexpress::ClientCaveTile::ClientCaveTile(unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, std::map<Animation const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<Animation const*>, std::allocator<std::pair<Animation const* const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const&, EntityAlignment) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:11
    #6 0x734104 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #7 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #8 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #9 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #10 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #11 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #12 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 119 byte(s) in 7 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x734104 in caveexpress::ClientCaveTile::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/caveexpress/client/entities/ClientCaveTile.cpp:36
    #4 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #5 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #6 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #7 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #8 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #9 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #10 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #11 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #12 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #13 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 64 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x779494 in __gnu_cxx::new_allocator<std::shared_ptr<Texture> >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x779247 in std::allocator_traits<std::allocator<std::shared_ptr<Texture> > >::allocate(std::allocator<std::shared_ptr<Texture> >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x77887b in std::_Vector_base<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x8a1510 in std::shared_ptr<Texture>* std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_allocate_and_copy<__gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > > >(unsigned long, __gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > >, __gnu_cxx::__normal_iterator<std::shared_ptr<Texture> const*, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > >) /usr/include/c++/5/bits/stl_vector.h:1224
    #5 0x8a0464 in std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::operator=(std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const&) /usr/include/c++/5/bits/vector.tcc:195
    #6 0x89d967 in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:21
    #7 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #8 0x7ad89a in ClientEntity::setAnimationType(Animation const&) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:161
    #9 0x7ae6be in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:241
    #10 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #11 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #12 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #13 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #14 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #15 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #16 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #17 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #18 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #19 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7b271a in __gnu_cxx::new_allocator<std::__detail::_Hash_node<std::pair<Animation const* const, std::shared_ptr<Sprite> >, false> >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x7b1f0b in std::allocator_traits<std::allocator<std::__detail::_Hash_node<std::pair<Animation const* const, std::shared_ptr<Sprite> >, false> > >::allocate(std::allocator<std::__detail::_Hash_node<std::pair<Animation const* const, std::shared_ptr<Sprite> >, false> >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x7b1194 in std::__detail::_Hash_node<std::pair<Animation const* const, std::shared_ptr<Sprite> >, false>* std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<Animation const* const, std::shared_ptr<Sprite> >, false> > >::_M_allocate_node<std::piecewise_construct_t const&, std::tuple<Animation const* const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<Animation const* const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/hashtable_policy.h:1949
    #4 0x7b08d5 in std::__detail::_Map_base<Animation const*, std::pair<Animation const* const, std::shared_ptr<Sprite> >, std::allocator<std::pair<Animation const* const, std::shared_ptr<Sprite> > >, std::__detail::_Select1st, std::equal_to<Animation const*>, std::hash<Animation const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[](Animation const* const&) /usr/include/c++/5/bits/hashtable_policy.h:597
    #5 0x7aff62 in std::unordered_map<Animation const*, std::shared_ptr<Sprite>, std::hash<Animation const*>, std::equal_to<Animation const*>, std::allocator<std::pair<Animation const* const, std::shared_ptr<Sprite> > > >::operator[](Animation const* const&) /usr/include/c++/5/bits/unordered_map.h:668
    #6 0x7ad9a8 in ClientEntity::setAnimationType(Animation const&) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:163
    #7 0x7ae6be in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:241
    #8 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #9 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #10 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #11 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #12 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #13 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #14 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #15 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #16 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #17 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x8a4e01 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:27
    #4 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #5 0x7611da in caveexpress::UIGameHelpWindow::createSprite(EntityType const&, Animation const&, float, float) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:62
    #6 0x7624cc in caveexpress::UIGameHelpWindow::addPackageHelp(UINode*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:119
    #7 0x760ae3 in caveexpress::UIGameHelpWindow::UIGameHelpWindow(IFrontend*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:30
    #8 0x66e910 in caveexpress::CaveExpress::initUI(IFrontend*, ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/caveexpress/main/CaveExpress.cpp:393
    #9 0x7e12cb in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:191
    #10 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #11 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #12 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #13 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #14 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #15 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189829aa in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x989aa)
    #1 0x7f19182779fe in SDLNet_AllocSocketSet (/usr/lib/x86_64-linux-gnu/libSDL2_net-2.0.so.0+0x29fe)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7b1008 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Sprite*>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:574
    #2 0x7b077e in std::__shared_ptr<Sprite, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:882
    #3 0x7aff3c in std::shared_ptr<Sprite>::shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr.h:117
    #4 0x7ad8af in ClientEntity::setAnimationType(Animation const&) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:161
    #5 0x7ae6be in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:241
    #6 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #7 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #8 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #9 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #10 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #11 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #12 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #13 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #14 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #15 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68c611 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f1917183ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #4 0x7ad89a in ClientEntity::setAnimationType(Animation const&) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:161
    #5 0x7ae6be in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:241
    #6 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #7 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #8 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #9 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #10 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #11 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #12 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #13 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #14 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #15 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7b1008 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<Sprite*>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:574
    #2 0x7b077e in std::__shared_ptr<Sprite, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr_base.h:882
    #3 0x7aff3c in std::shared_ptr<Sprite>::shared_ptr<Sprite>(Sprite*) /usr/include/c++/5/bits/shared_ptr.h:117
    #4 0x8a5170 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:46
    #5 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #6 0x7611da in caveexpress::UIGameHelpWindow::createSprite(EntityType const&, Animation const&, float, float) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:62
    #7 0x7624cc in caveexpress::UIGameHelpWindow::addPackageHelp(UINode*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:119
    #8 0x760ae3 in caveexpress::UIGameHelpWindow::UIGameHelpWindow(IFrontend*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:30
    #9 0x66e910 in caveexpress::CaveExpress::initUI(IFrontend*, ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/caveexpress/main/CaveExpress.cpp:393
    #10 0x7e12cb in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:191
    #11 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #12 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #13 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #14 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #15 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x779494 in __gnu_cxx::new_allocator<std::shared_ptr<Texture> >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x779247 in std::allocator_traits<std::allocator<std::shared_ptr<Texture> > >::allocate(std::allocator<std::shared_ptr<Texture> >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x77887b in std::_Vector_base<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x81a2b5 in void std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::_M_emplace_back_aux<std::shared_ptr<Texture> const&>(std::shared_ptr<Texture> const&) /usr/include/c++/5/bits/vector.tcc:412
    #5 0x81a22d in std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > >::push_back(std::shared_ptr<Texture> const&) /usr/include/c++/5/bits/stl_vector.h:923
    #6 0x89df0e in Sprite::addFrame(Layer, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:59
    #7 0x8a50e5 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:40
    #8 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #9 0x7611da in caveexpress::UIGameHelpWindow::createSprite(EntityType const&, Animation const&, float, float) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:62
    #10 0x7624cc in caveexpress::UIGameHelpWindow::addPackageHelp(UINode*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:119
    #11 0x760ae3 in caveexpress::UIGameHelpWindow::UIGameHelpWindow(IFrontend*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:30
    #12 0x66e910 in caveexpress::CaveExpress::initUI(IFrontend*, ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/caveexpress/main/CaveExpress.cpp:393
    #13 0x7e12cb in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:191
    #14 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #15 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #16 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #17 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #18 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #19 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x69be08 in __gnu_cxx::new_allocator<std::__detail::_Hash_node_base*>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x69b68f in std::allocator_traits<std::allocator<std::__detail::_Hash_node_base*> >::allocate(std::allocator<std::__detail::_Hash_node_base*>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x7b315b in std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<Animation const* const, std::shared_ptr<Sprite> >, false> > >::_M_allocate_buckets(unsigned long) /usr/include/c++/5/bits/hashtable_policy.h:1996
    #4 0x7b2eb7 in std::_Hashtable<Animation const*, std::pair<Animation const* const, std::shared_ptr<Sprite> >, std::allocator<std::pair<Animation const* const, std::shared_ptr<Sprite> > >, std::__detail::_Select1st, std::equal_to<Animation const*>, std::hash<Animation const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_allocate_buckets(unsigned long) /usr/include/c++/5/bits/hashtable.h:347
    #5 0x7b27e8 in std::_Hashtable<Animation const*, std::pair<Animation const* const, std::shared_ptr<Sprite> >, std::allocator<std::pair<Animation const* const, std::shared_ptr<Sprite> > >, std::__detail::_Select1st, std::equal_to<Animation const*>, std::hash<Animation const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_rehash_aux(unsigned long, std::integral_constant<bool, true>) /usr/include/c++/5/bits/hashtable.h:1974
    #6 0x7b202c in std::_Hashtable<Animation const*, std::pair<Animation const* const, std::shared_ptr<Sprite> >, std::allocator<std::pair<Animation const* const, std::shared_ptr<Sprite> > >, std::__detail::_Select1st, std::equal_to<Animation const*>, std::hash<Animation const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_rehash(unsigned long, unsigned long const&) /usr/include/c++/5/bits/hashtable.h:1953
    #7 0x7b145c in std::_Hashtable<Animation const*, std::pair<Animation const* const, std::shared_ptr<Sprite> >, std::allocator<std::pair<Animation const* const, std::shared_ptr<Sprite> > >, std::__detail::_Select1st, std::equal_to<Animation const*>, std::hash<Animation const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<Animation const* const, std::shared_ptr<Sprite> >, false>*) /usr/include/c++/5/bits/hashtable.h:1600
    #8 0x7b08f1 in std::__detail::_Map_base<Animation const*, std::pair<Animation const* const, std::shared_ptr<Sprite> >, std::allocator<std::pair<Animation const* const, std::shared_ptr<Sprite> > >, std::__detail::_Select1st, std::equal_to<Animation const*>, std::hash<Animation const*>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true>, true>::operator[](Animation const* const&) /usr/include/c++/5/bits/hashtable_policy.h:600
    #9 0x7aff62 in std::unordered_map<Animation const*, std::shared_ptr<Sprite>, std::hash<Animation const*>, std::equal_to<Animation const*>, std::allocator<std::pair<Animation const* const, std::shared_ptr<Sprite> > > >::operator[](Animation const* const&) /usr/include/c++/5/bits/unordered_map.h:668
    #10 0x7ad9a8 in ClientEntity::setAnimationType(Animation const&) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:163
    #11 0x7ae6be in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:241
    #12 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #13 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #14 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #15 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #16 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #17 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #18 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #19 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #20 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #21 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 16 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3f64 in __gnu_cxx::new_allocator<int>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a36f7 in std::allocator_traits<std::allocator<int> >::allocate(std::allocator<int>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a2de1 in std::_Vector_base<int, std::allocator<int> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x8a261a in std::_Vector_base<int, std::allocator<int> >::_M_create_storage(unsigned long) /usr/include/c++/5/bits/stl_vector.h:185
    #5 0x8a0daf in std::_Vector_base<int, std::allocator<int> >::_Vector_base(unsigned long, std::allocator<int> const&) /usr/include/c++/5/bits/stl_vector.h:136
    #6 0x8a0063 in std::vector<int, std::allocator<int> >::vector(std::vector<int, std::allocator<int> > const&) /usr/include/c++/5/bits/stl_vector.h:320
    #7 0x89d6cd in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:18
    #8 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #9 0x7ad89a in ClientEntity::setAnimationType(Animation const&) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:161
    #10 0x7ae6be in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:241
    #11 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #12 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #13 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #14 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #15 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #16 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3a9a in __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a32c4 in std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a28cb in std::_Bvector_base<std::allocator<bool> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_bvector.h:492
    #4 0x8a1e84 in std::vector<bool, std::allocator<bool> >::_M_insert_aux(std::_Bit_iterator, bool) /usr/include/c++/5/bits/vector.tcc:790
    #5 0x8a0a92 in std::vector<bool, std::allocator<bool> >::push_back(bool) /usr/include/c++/5/bits/stl_bvector.h:926
    #6 0x89df3b in Sprite::addFrame(Layer, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:61
    #7 0x8a50e5 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:40
    #8 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #9 0x7611da in caveexpress::UIGameHelpWindow::createSprite(EntityType const&, Animation const&, float, float) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:62
    #10 0x7624cc in caveexpress::UIGameHelpWindow::addPackageHelp(UINode*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:119
    #11 0x760ae3 in caveexpress::UIGameHelpWindow::UIGameHelpWindow(IFrontend*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:30
    #12 0x66e910 in caveexpress::CaveExpress::initUI(IFrontend*, ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/caveexpress/main/CaveExpress.cpp:393
    #13 0x7e12cb in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:191
    #14 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #15 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #16 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #17 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #18 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #19 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3a9a in __gnu_cxx::new_allocator<unsigned long>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a32c4 in std::allocator_traits<std::allocator<unsigned long> >::allocate(std::allocator<unsigned long>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a28cb in std::_Bvector_base<std::allocator<bool> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_bvector.h:492
    #4 0x8a101d in std::vector<bool, std::allocator<bool> >::_M_initialize(unsigned long) /usr/include/c++/5/bits/stl_bvector.h:1084
    #5 0x8a01bc in std::vector<bool, std::allocator<bool> >::vector(std::vector<bool, std::allocator<bool> > const&) /usr/include/c++/5/bits/stl_bvector.h:614
    #6 0x89d6e4 in Sprite::Sprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<int, std::allocator<int> > const&, std::vector<bool, std::allocator<bool> > const&, std::vector<std::shared_ptr<Texture>, std::allocator<std::shared_ptr<Texture> > > const*, int, float, int, bool, int, int) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:18
    #7 0x89dd1b in Sprite::copy() const /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:38
    #8 0x7ad89a in ClientEntity::setAnimationType(Animation const&) /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:161
    #9 0x7ae6be in ClientEntity::Factory::create(ClientEntityFactoryContext const*) const /home/mgerhardy/dev/caveexpress/src/modules/client/entities/ClientEntity.cpp:241
    #10 0x680fe6 in IFactoryRegistry<EntityType const*, ClientEntity, ClientEntityFactoryContext>::create(EntityType const* const&, ClientEntityFactoryContext const*) const (/home/mgerhardy/dev/caveexpress/caveexpress+0x680fe6)
    #11 0x675461 in ClientEntityRegistry::get(EntityType const&, unsigned short, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Animation const&, float, float, float, float, short, EntityAlignment) (/home/mgerhardy/dev/caveexpress/caveexpress+0x675461)
    #12 0x6780a6 in AddEntityHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6780a6)
    #13 0x6783f2 in caveexpress::AddEntityWithSoundHandler::execute(IProtocolMessage const&) (/home/mgerhardy/dev/caveexpress/caveexpress+0x6783f2)
    #14 0x7a53b9 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:424
    #15 0x8ba2e3 in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #16 0x7860e3 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #17 0x786a09 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #18 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #19 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x7f19189838b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x8a3f64 in __gnu_cxx::new_allocator<int>::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x8a36f7 in std::allocator_traits<std::allocator<int> >::allocate(std::allocator<int>&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x8a2de1 in std::_Vector_base<int, std::allocator<int> >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x8a19b7 in void std::vector<int, std::allocator<int> >::_M_emplace_back_aux<int const&>(int const&) /usr/include/c++/5/bits/vector.tcc:412
    #5 0x8a09ab in std::vector<int, std::allocator<int> >::push_back(int const&) /usr/include/c++/5/bits/stl_vector.h:923
    #6 0x89df25 in Sprite::addFrame(Layer, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, bool) /home/mgerhardy/dev/caveexpress/src/modules/sprites/Sprite.cpp:60
    #7 0x8a50e5 in SpriteCache::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/mgerhardy/dev/caveexpress/src/modules/sprites/SpriteCache.cpp:40
    #8 0x671fa6 in UI::loadSprite(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.h:234
    #9 0x7611da in caveexpress::UIGameHelpWindow::createSprite(EntityType const&, Animation const&, float, float) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:62
    #10 0x7624cc in caveexpress::UIGameHelpWindow::addPackageHelp(UINode*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:119
    #11 0x760ae3 in caveexpress::UIGameHelpWindow::UIGameHelpWindow(IFrontend*) /home/mgerhardy/dev/caveexpress/src/caveexpress/client/ui/windows/UIGameHelpWindow.cpp:30
    #12 0x66e910 in caveexpress::CaveExpress::initUI(IFrontend*, ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/caveexpress/main/CaveExpress.cpp:393
    #13 0x7e12cb in UI::init(ServiceProvider&, EventHandler&, IFrontend&) /home/mgerhardy/dev/caveexpress/src/modules/ui/UI.cpp:191
    #14 0x7bae48 in SDLFrontend::initUI(ServiceProvider&) /home/mgerhardy/dev/caveexpress/src/modules/gfx/SDLFrontend.cpp:496
    #15 0x785755 in SDLBackend::handleInit() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:273
    #16 0x785b5b in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:297
    #17 0x786763 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:357
    #18 0x69da4e in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #19 0x7f1916792a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

SUMMARY: AddressSanitizer: 478730 byte(s) leaked in 4527 allocation(s).
@mgerhardy mgerhardy self-assigned this Dec 23, 2015
@mgerhardy mgerhardy added the bug label Dec 23, 2015
@mgerhardy
Copy link
Owner Author

most of them are fixed now - problems still with the list protocol messages like PlayerListMessage

@mgerhardy
Copy link
Owner Author

=================================================================
==20895==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 26260 byte(s) in 404 object(s) allocated from:
    #0 0x7f3f82d378b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7f3f81535d6c in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11fd6c)

Direct leak of 4800 byte(s) in 1 object(s) allocated from:
    #0 0x7f3f82d369aa in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x989aa)
    #1 0x7f3f77e5e713 in glXGetFBConfigs (/usr/lib/x86_64-linux-gnu/mesa/libGL.so.1+0x19713)

Direct leak of 72 byte(s) in 6 object(s) allocated from:
    #0 0x7f3f82d369aa in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x989aa)
    #1 0x7f3f80bb1429 in __strdup (/lib/x86_64-linux-gnu/libc.so.6+0x8b429)

Direct leak of 65 byte(s) in 1 object(s) allocated from:
    #0 0x7f3f82d378b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x7f3f81535d6c in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x11fd6c)
    #2 0xbebebebebebebebd  (<unknown module>)

Direct leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f3f82d378b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x69444e in __gnu_cxx::new_allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x68cff8 in std::allocator_traits<std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::allocate(std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x687e37 in std::_Vector_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_allocate(unsigned long) /usr/include/c++/5/bits/stl_vector.h:170
    #4 0x684653 in void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_emplace_back_aux<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/vector.tcc:412
    #5 0x67fd49 in std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::push_back(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_vector.h:923
    #6 0x8c990b in IProtocolListMessage::IProtocolListMessage(unsigned char, ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/network/IProtocolMessage.h:86
    #7 0x8ca68c in PlayerListMessage::PlayerListMessage(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/network/IProtocolMessage.h:158
    #8 0x8ca658 in PlayerListMessage::Factory::create(ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/network/IProtocolMessage.h:158
    #9 0x8d38ec in IFactoryRegistry<unsigned char, IProtocolMessage, ByteStream>::create(unsigned char const&, ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/common/IFactoryRegistry.h:43
    #10 0x8c88c2 in ProtocolMessageFactory::createMsg(ByteStream&) const /home/mgerhardy/dev/caveexpress/src/modules/network/ProtocolMessageFactory.cpp:126
    #11 0x7a5926 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:419
    #12 0x8baced in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x786543 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786e69 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69deae in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f3f80b46a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 1632 byte(s) in 17 object(s) allocated from:
    #0 0x7f3f82d378b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x6d02cf in __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::allocate(unsigned long, void const*) /usr/include/c++/5/ext/new_allocator.h:104
    #2 0x6ce1c9 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::allocate(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, unsigned long) /usr/include/c++/5/bits/alloc_traits.h:360
    #3 0x6caee2 in std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_get_node() /usr/include/c++/5/bits/stl_tree.h:491
    #4 0x71ff4e in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:545
    #5 0x71e1b8 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:2170
    #6 0x71c18b in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_map.h:483
    #7 0x8ce5b7 in MapSettingsMessage::MapSettingsMessage(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/network/messages/MapSettingsMessage.h:28
    #8 0x8ce3f2 in MapSettingsMessage::Factory::create(ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/network/messages/MapSettingsMessage.h:19
    #9 0x8d38ec in IFactoryRegistry<unsigned char, IProtocolMessage, ByteStream>::create(unsigned char const&, ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/common/IFactoryRegistry.h:43
    #10 0x8c88c2 in ProtocolMessageFactory::createMsg(ByteStream&) const /home/mgerhardy/dev/caveexpress/src/modules/network/ProtocolMessageFactory.cpp:126
    #11 0x7a5926 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:419
    #12 0x8baced in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #13 0x786543 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #14 0x786e69 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #15 0x69deae in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #16 0x7f3f80b46a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

Indirect leak of 73 byte(s) in 4 object(s) allocated from:
    #0 0x7f3f82d378b2 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x998b2)
    #1 0x68ca71 in void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) /usr/include/c++/5/bits/basic_string.tcc:223
    #2 0x7f3f81537ece in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x121ece)
    #3 0x72738d in std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::piecewise_construct_t, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<>) /usr/include/c++/5/tuple:1161
    #4 0x72620b in void __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/ext/new_allocator.h:120
    #5 0x725183 in std::enable_if<std::__and_<std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::__construct_helper<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >::type>::value, void>::type std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::_S_construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/alloc_traits.h:256
    #6 0x723b3c in decltype (_S_construct({parm#1}, {parm#2}, (forward<std::piecewise_construct_t const&>)({parm#3}), (forward<std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&> >)({parm#3}), (forward<std::tuple<> >)({parm#3}))) std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >::construct<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::allocator<std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/alloc_traits.h:402
    #7 0x7220aa in void std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_construct_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >*, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:529
    #8 0x71ff95 in std::_Rb_tree_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >* std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_create_node<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:546
    #9 0x71e1b8 in std::_Rb_tree_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > std::_Rb_tree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::_Select1st<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::_M_emplace_hint_unique<std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>, std::tuple<> >(std::_Rb_tree_const_iterator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::piecewise_construct_t const&, std::tuple<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>&&, std::tuple<>&&) /usr/include/c++/5/bits/stl_tree.h:2170
    #10 0x71c18b in std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/include/c++/5/bits/stl_map.h:483
    #11 0x8ce5b7 in MapSettingsMessage::MapSettingsMessage(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/network/messages/MapSettingsMessage.h:28
    #12 0x8ce3f2 in MapSettingsMessage::Factory::create(ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/network/messages/MapSettingsMessage.h:19
    #13 0x8d38ec in IFactoryRegistry<unsigned char, IProtocolMessage, ByteStream>::create(unsigned char const&, ByteStream const*) const /home/mgerhardy/dev/caveexpress/src/modules/common/IFactoryRegistry.h:43
    #14 0x8c88c2 in ProtocolMessageFactory::createMsg(ByteStream&) const /home/mgerhardy/dev/caveexpress/src/modules/network/ProtocolMessageFactory.cpp:126
    #15 0x7a5926 in ClientMap::onData(ByteStream&) /home/mgerhardy/dev/caveexpress/src/modules/client/ClientMap.cpp:419
    #16 0x8baced in NoNetwork::update(unsigned int) /home/mgerhardy/dev/caveexpress/src/modules/network/NoNetwork.cpp:15
    #17 0x786543 in SDLBackend::runFrame() /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:324
    #18 0x786e69 in SDLBackend::mainLoop(int, char**) /home/mgerhardy/dev/caveexpress/src/modules/server/SDLBackend.cpp:369
    #19 0x69deae in main /home/mgerhardy/dev/caveexpress/src/Main.cpp:31
    #20 0x7f3f80b46a3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20a3f)

SUMMARY: AddressSanitizer: 32934 byte(s) leaked in 434 allocation(s).

@mgerhardy mgerhardy added the caveexpress CaveExpress label Mar 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant