From 6cb52deaad36f59738b6b4d203457a7f8d2d13e9 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Sat, 24 Jan 2015 14:24:59 +0100 Subject: Fixed integer overflow bug in SourceContextReader, adapted TerminaLoggerTest --- src/core/common/SourceContextReader.hpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/core/common/SourceContextReader.hpp') diff --git a/src/core/common/SourceContextReader.hpp b/src/core/common/SourceContextReader.hpp index 35e71b3..cd29880 100644 --- a/src/core/common/SourceContextReader.hpp +++ b/src/core/common/SourceContextReader.hpp @@ -82,7 +82,25 @@ public: * @return a SourceContext instance describing the */ SourceContext readContext(CharReader &reader, const SourceRange &range, - size_t maxContextLength = MAX_MAX_CONTEXT_LENGTH, + size_t maxContextLength, + const std::string &filename = ""); + + /** + * Returns the context for the char reader and the given SourceRange. + * Returns an invalid source context if either the given range is invalid + * or the byte offset described in the SourceRange cannot be reached because + * the CharReader cannot be seeked back to this position. Does not limit + * the output context. + * + * @param reader is the CharReader instance from which the context should be + * read. + * @param range describes the Range within the source file for which the + * context should be extraced. + * @param filename is the filename that should be stored in the returned + * context. + * @return a SourceContext instance describing the + */ + SourceContext readContext(CharReader &reader, const SourceRange &range, const std::string &filename = ""); }; } -- cgit v1.2.3