Merge pull request #17 from google/non-existing-string
Protect location setting methods from writing to non-existing strings.
This commit is contained in:
commit
a417f01041
1 changed files with 4 additions and 2 deletions
|
|
@ -123,10 +123,12 @@ public:
|
|||
}
|
||||
|
||||
// for #line override
|
||||
void setLine(int newLine) { loc[currentSource].line = newLine; }
|
||||
void setString(int newString) { loc[currentSource].string = newString; }
|
||||
void setLine(int newLine) { loc[getLastValidSourceIndex()].line = newLine; }
|
||||
void setString(int newString) { loc[getLastValidSourceIndex()].string = newString; }
|
||||
|
||||
const TSourceLoc& getSourceLoc() const { return loc[std::max(0, std::min(currentSource, numSources - finale - 1))]; }
|
||||
// Returns the index (starting from 0) of the most recent valid source string we are reading from.
|
||||
int getLastValidSourceIndex() const { return std::min(currentSource, numSources - 1); }
|
||||
|
||||
void consumeWhiteSpace(bool& foundNonSpaceTab);
|
||||
bool consumeComment();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue