Skip to content

Commit

Permalink
[C++] Trim strings for fixed length arrays.
Browse files Browse the repository at this point in the history
  • Loading branch information
mjpt777 committed Mar 3, 2019
1 parent 8ae4895 commit 88a6f79
Showing 1 changed file with 8 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1361,7 +1361,10 @@ private CharSequence generateArrayProperty(
sb.append(String.format("\n" +
indent + " std::string get%1$sAsString() const\n" +
indent + " {\n" +
indent + " std::string result(m_buffer + m_offset + %2$d, %3$d);\n" +
indent + " const char *buffer = m_buffer + m_offset + %2$d;\n" +
indent + " size_t length = 0;\n\n" +
indent + " for (; length < %3$d && *(buffer + length) != '\\0'; ++length);\n" +
indent + " std::string result(buffer, length);\n\n" +
indent + " return result;\n" +
indent + " }\n",
toUpperFirstChar(propertyName),
Expand All @@ -1372,7 +1375,10 @@ private CharSequence generateArrayProperty(
indent + " #if __cplusplus >= 201703L\n" +
indent + " std::string_view get%1$sAsStringView() const SBE_NOEXCEPT\n" +
indent + " {\n" +
indent + " std::string_view result(m_buffer + m_offset + %2$d, %3$d);\n" +
indent + " const char *buffer = m_buffer + m_offset + %2$d;\n" +
indent + " size_t length = 0;\n\n" +
indent + " for (; length < %3$d && *(buffer + length) != '\\0'; ++length);\n" +
indent + " std::string_view result(buffer, length);\n\n" +
indent + " return result;\n" +
indent + " }\n" +
indent + " #endif\n",
Expand Down

0 comments on commit 88a6f79

Please sign in to comment.