]> git.localhorst.tv Git - l2e.git/commitdiff
made Interpreter constructor explicit and added an error message
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Thu, 13 Sep 2012 20:43:45 +0000 (22:43 +0200)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Sat, 15 Sep 2012 19:44:13 +0000 (21:44 +0200)
src/loader/Interpreter.cpp
src/loader/Interpreter.h

index 97ed93981e405fc1fa3a56e450ce0c51ee8ddf66..0b81323b03b39fc4800ae64cc38317e5e21ddc15 100644 (file)
@@ -69,6 +69,15 @@ Interpreter::~Interpreter() {
 }
 
 
+const Interpreter::ParsedDefinition &Interpreter::GetDefinition(const string &identifier) const {
+       try {
+               return parsedDefinitions.at(identifier);
+       } catch (...) {
+               throw std::runtime_error("cannot find definition for " + identifier);
+       }
+}
+
+
 void *Interpreter::GetObject(int typeId, const std::string &name) {
        map<string, ParsedDefinition>::const_iterator i(parsedDefinitions.find(name));
        if (i != parsedDefinitions.end()) {
index b12efaedebb35fe3fac09057ffb13600aa3348ff..bfe18c2a301bf79f3b8a751940ee4fb9be77b76c 100644 (file)
@@ -62,7 +62,7 @@ public:
        };
 
 public:
-       Interpreter(const ParsedSource &source) : source(source) { }
+       explicit Interpreter(const ParsedSource &source) : source(source) { }
        ~Interpreter();
 private:
        Interpreter(const Interpreter &);
@@ -92,7 +92,7 @@ public:
        };
 
        const std::set<std::string> &ExportedIdentifiers() const { return source.Exports(); }
-       const ParsedDefinition &GetDefinition(const std::string &identifier) const { return parsedDefinitions.at(identifier); }
+       const ParsedDefinition &GetDefinition(const std::string &identifier) const;
        const std::map<std::string, SDL_Surface *> &Images() const { return imageCache; }
        const std::vector<PostponedDefinition> &PostponedDefinitions() const { return postponedDefinitions; }
        const std::map<int, std::vector<void *> > &Values() const { return values; }