diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2017-12-27 01:38:22 -0800 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2017-12-27 01:38:22 -0800 |
commit | 4e6d856ad85dcbc9b719edc0a459498fa3d4f8e2 (patch) | |
tree | 4f1ec05ec0d52e35bfad15413741bd1ef28e27af /ldid.cpp | |
parent | f74652ab3bfc5026ef954a35aeb137a18f55bf67 (diff) | |
download | ldid-4e6d856ad85dcbc9b719edc0a459498fa3d4f8e2.tar.gz ldid-4e6d856ad85dcbc9b719edc0a459498fa3d4f8e2.tar.zst ldid-4e6d856ad85dcbc9b719edc0a459498fa3d4f8e2.zip |
Require user to store streambufs for UnionFolders.
Diffstat (limited to 'ldid.cpp')
-rw-r--r-- | ldid.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -1978,19 +1978,20 @@ void UnionFolder::Open(const std::string &path, const Functor<void (std::streamb return parent_.Open(Map(path), code); auto &entry(file->second); - auto &data(entry.first); + auto &data(*entry.data_); auto length(data.pubseekoff(0, std::ios::end, std::ios::in)); data.pubseekpos(0, std::ios::in); - code(data, length, entry.second); + code(data, length, entry.flag_); } void UnionFolder::Find(const std::string &path, const Functor<void (const std::string &)> &code, const Functor<void (const std::string &, const Functor<std::string ()> &)> &link) const { for (auto &reset : resets_) Map(path, code, reset.first, fun([&](const Functor<void (std::streambuf &, size_t, const void *)> &code) { auto &entry(reset.second); - auto length(entry.first.pubseekoff(0, std::ios::end, std::ios::in)); - entry.first.pubseekpos(0, std::ios::in); - code(entry.first, length, entry.second); + auto &data(*entry.data_); + auto length(data.pubseekoff(0, std::ios::end, std::ios::in)); + data.pubseekpos(0, std::ios::in); + code(data, length, entry.flag_); })); for (auto &remap : remaps_) |