Skip to content

Commit e3631cf

Browse files
Document that parseStream accepts stream that end with double null character
1 parent c459f31 commit e3631cf

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

cppparser/include/cppparser/cppparser.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,13 @@ class CppParser
4545

4646
public:
4747
std::unique_ptr<cppast::CppCompound> parseFile(const std::string& filename);
48+
/**
49+
* @brief Parses the given stream and returns the AST.
50+
* @param stm The stream to parse.
51+
* @param stmSize The size of the stream.
52+
* @return The AST.
53+
* @warning The stream \a stm must terminate with double null characters, i.e. the last 2 bytes must be '\0'.
54+
*/
4855
std::unique_ptr<cppast::CppCompound> parseStream(char* stm, size_t stmSize);
4956

5057
void setErrorHandler(ErrorHandler errorHandler);

cppparser/src/cppparser.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ std::unique_ptr<cppast::CppCompound> CppParser::parseFile(const std::string& fil
111111

112112
std::unique_ptr<cppast::CppCompound> CppParser::parseStream(char* stm, size_t stmSize)
113113
{
114-
if (stm == nullptr || stmSize == 0)
115-
return nullptr;
114+
if ((stm == nullptr) || (stmSize < 2) || (stm[stmSize - 1] != '\0') || (stm[stmSize - 2] != '\0'))
115+
throw std::invalid_argument("Stream must be valid and it must terminate with double null characters");
116116
return ::parseStream(stm, stmSize);
117117
}
118118

cppparser/test/unit/embedded-snippet-test-base.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class EmbeddedSnippetTestBase
5959
*/
6060
std::string getTestSnippetParseStream(int lastSnippetBeforeLineNum) const
6161
{
62-
return getTestSnippet(lastSnippetBeforeLineNum).append(3, '\0');
62+
return getTestSnippet(lastSnippetBeforeLineNum).append(2, '\0');
6363
}
6464
};
6565

0 commit comments

Comments
 (0)