Skip to content

Commit 0976d39

Browse files
committed
Call load_callback for all includes, even cached
1 parent 1392ebd commit 0976d39

2 files changed

Lines changed: 13 additions & 5 deletions

File tree

simplecpp.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3232,13 +3232,10 @@ std::pair<simplecpp::FileData *, bool> simplecpp::FileDataCache::tryload(FileDat
32323232
mImpl->mIdMap.emplace(fileId, data);
32333233
mData.emplace_back(data);
32343234

3235-
if (mLoadCallback)
3236-
mLoadCallback(*data);
3237-
32383235
return {data, true};
32393236
}
32403237

3241-
std::pair<simplecpp::FileData *, bool> simplecpp::FileDataCache::get(const std::string &sourcefile, const std::string &header, const simplecpp::DUI &dui, bool systemheader, std::vector<std::string> &filenames, simplecpp::OutputList *outputList)
3238+
std::pair<simplecpp::FileData *, bool> simplecpp::FileDataCache::get_private(const std::string &sourcefile, const std::string &header, const simplecpp::DUI &dui, bool systemheader, std::vector<std::string> &filenames, simplecpp::OutputList *outputList)
32423239
{
32433240
if (isAbsolutePath(header)) {
32443241
auto ins = mNameMap.emplace(simplecpp::simplifyPath(header), nullptr);
@@ -3284,6 +3281,16 @@ std::pair<simplecpp::FileData *, bool> simplecpp::FileDataCache::get(const std::
32843281
return {nullptr, false};
32853282
}
32863283

3284+
std::pair<simplecpp::FileData *, bool> simplecpp::FileDataCache::get(const std::string &sourcefile, const std::string &header, const simplecpp::DUI &dui, bool systemheader, std::vector<std::string> &filenames, simplecpp::OutputList *outputList)
3285+
{
3286+
auto ret = get_private(sourcefile, header, dui, systemheader, filenames, outputList);
3287+
3288+
if (mLoadCallback && ret.first)
3289+
mLoadCallback(*ret.first, ret.second);
3290+
3291+
return ret;
3292+
}
3293+
32873294
void simplecpp::FileDataCache::clear()
32883295
{
32893296
mImpl->clear();

simplecpp.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -511,7 +511,7 @@ namespace simplecpp {
511511
return mData.cend();
512512
}
513513

514-
using load_callback_type = std::function<void (FileData &)>;
514+
using load_callback_type = std::function<void (FileData &, bool)>;
515515

516516
void set_load_callback(load_callback_type cb) {
517517
mLoadCallback = std::move(cb);
@@ -524,6 +524,7 @@ namespace simplecpp {
524524
using name_map_type = std::unordered_map<std::string, FileData *>;
525525

526526
std::pair<FileData *, bool> tryload(name_map_type::iterator &name_it, const DUI &dui, std::vector<std::string> &filenames, OutputList *outputList);
527+
std::pair<FileData *, bool> get_private(const std::string &sourcefile, const std::string &header, const DUI &dui, bool systemheader, std::vector<std::string> &filenames, OutputList *outputList);
527528

528529
container_type mData;
529530
name_map_type mNameMap;

0 commit comments

Comments
 (0)