added checks to prevent the self assignment

This commit is contained in:
Liana Husikyan 2015-08-10 17:55:31 +02:00
parent 090e581fe8
commit 8b433edc4e

View File

@ -41,8 +41,21 @@ struct SourceLocation
SourceLocation(): start(-1), end(-1) { }
SourceLocation(SourceLocation const& _other):
start(_other.start), end(_other.end), sourceName(_other.sourceName) {}
SourceLocation& operator=(SourceLocation const& _other) { start = _other.start; end = _other.end; sourceName = _other.sourceName; return *this;}
start(_other.start),
end(_other.end),
sourceName(_other.sourceName)
{}
SourceLocation& operator=(SourceLocation const& _other)
{
if (&_other == this)
return *this;
start = _other.start;
end = _other.end;
sourceName = _other.sourceName;
return *this;
}
bool operator==(SourceLocation const& _other) const { return start == _other.start && end == _other.end;}
bool operator!=(SourceLocation const& _other) const { return !operator==(_other); }