mgerhardy / caveexpress

CaveExpress is a classic 2D platformer with physics-based gameplay and dozens of levels. CavePacker is a Sokoban game.
http://www.caveproductions.org/
Other
144 stars 20 forks source link

GENERAL: memory leaks #69

Open mgerhardy opened 8 years ago

mgerhardy commented 8 years ago
=================================================================
==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 commented 8 years ago

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

mgerhardy commented 8 years ago
=================================================================
==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).