diff options
author | Jude Melton-Houghton <jwmhjwmh@gmail.com> | 2022-09-26 17:03:43 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-26 17:03:43 -0400 |
commit | f4a01f3a5dc0d8fe2f4f6d804d790da91d1bc30c (patch) | |
tree | 089ddc309e22ae8549ec3b86765ee272f57a33df /src/content/mods.h | |
parent | 03428d9825cfdf2cfaed6ac9410dafccac0d4f3a (diff) | |
download | minetest-f4a01f3a5dc0d8fe2f4f6d804d790da91d1bc30c.tar.xz |
Avoid duplication of mod metadata in memory (#12562)
Co-authored-by: sfan5 <sfan5@live.de>
Diffstat (limited to 'src/content/mods.h')
-rw-r--r-- | src/content/mods.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/content/mods.h b/src/content/mods.h index 5ed5b8171..0b0e26b50 100644 --- a/src/content/mods.h +++ b/src/content/mods.h @@ -110,18 +110,26 @@ std::map<std::string, ModSpec> getModsInPath(const std::string &path, std::vector<ModSpec> flattenMods(const std::map<std::string, ModSpec> &mods); -class ModMetadata : public Metadata +class ModMetadata : public IMetadata { public: ModMetadata() = delete; ModMetadata(const std::string &mod_name, ModMetadataDatabase *database); ~ModMetadata() = default; - virtual void clear(); - const std::string &getModName() const { return m_mod_name; } - virtual bool setString(const std::string &name, const std::string &var); + void clear() override; + + bool contains(const std::string &name) const override; + + bool setString(const std::string &name, const std::string &var) override; + + const StringMap &getStrings(StringMap *place) const override; + +protected: + const std::string *getStringRaw(const std::string &name, + std::string *place) const override; private: std::string m_mod_name; |