- return i->second;
-
- std::unique_ptr<TileSet> tileset (new TileSet(filename));
- tilesets.insert(std::make_pair(filename, tileset.get()));
-
- return tileset.release();
+ {
+ return i->second.get();
+ }
+ else
+ {
+ std::unique_ptr<TileSet> tileset(new TileSet(filename));
+ TileSet* result = tileset.get();
+ tilesets.insert(std::make_pair(filename, std::move(tileset)));
+ return result;
+ }