Commit c2fd8e28 authored by Krishna Kondaka's avatar Krishna Kondaka Committed by Facebook Github Bot

Revert D13038266: [folly] folly::json does not increment lineNum_ when skipping whitespace

Differential Revision:
D13038266

Original commit changeset: b424690c50f0

fbshipit-source-id: 600452535acf1251ed5d35845244ebdfcc63b11f
parent ec1ffd4f
...@@ -216,24 +216,19 @@ struct Input { ...@@ -216,24 +216,19 @@ struct Input {
return range_.begin(); return range_.begin();
} }
// Parse ahead for as long as the supplied predicate is satisfied,
// returning a range of what was skipped.
template <class Predicate> template <class Predicate>
size_t skipChars(const Predicate& p, size_t skipped = 0) { StringPiece skipWhile(const Predicate& p) {
std::size_t skipped = 0;
for (; skipped < range_.size(); ++skipped) { for (; skipped < range_.size(); ++skipped) {
if (!p(range_[skipped])) { if (!p(range_[skipped])) {
return skipped; break;
} }
if (range_[skipped] == '\n') { if (range_[skipped] == '\n') {
++lineNum_; ++lineNum_;
} }
} }
return skipped;
}
// Parse ahead for as long as the supplied predicate is satisfied,
// returning a range of what was skipped.
template <class Predicate>
StringPiece skipWhile(const Predicate& p) {
std::size_t skipped = skipChars(p);
auto ret = range_.subpiece(0, skipped); auto ret = range_.subpiece(0, skipped);
range_.advance(skipped); range_.advance(skipped);
storeCurrent(); storeCurrent();
...@@ -254,19 +249,7 @@ struct Input { ...@@ -254,19 +249,7 @@ struct Input {
} }
void skipWhitespace() { void skipWhitespace() {
std::size_t endOfWhiteSpaces = 0; range_ = folly::skipWhitespace(range_);
auto isOddSpace = [](char c) {
return c == '\n' || c == '\t' || c == '\r';
};
auto isSpace = [](char c) { return c == ' '; };
while (true) {
auto endOfSpaces = skipChars(isSpace, endOfWhiteSpaces);
endOfWhiteSpaces = skipChars(isOddSpace, endOfSpaces);
if (endOfSpaces == endOfWhiteSpaces) {
break;
}
}
range_.advance(endOfWhiteSpaces);
storeCurrent(); storeCurrent();
} }
......
...@@ -353,16 +353,6 @@ TEST(LogConfig, parseJsonErrors) { ...@@ -353,16 +353,6 @@ TEST(LogConfig, parseJsonErrors) {
parseLogConfigJson(R"("hello")"), parseLogConfigJson(R"("hello")"),
LogConfigParseError, LogConfigParseError,
"JSON config input must be an object"); "JSON config input must be an object");
EXPECT_THROW_RE(
parseLogConfigJson(
"{\n\"N\":\"X\",\n\"id\":\"1\",\n\"T\",:[\n\"A\",\n\"B\",\n]\n}\n"),
std::runtime_error,
"json parse error on line 3 near");
EXPECT_THROW_RE(
parseLogConfigJson(
"{\n\"N\":\"X\",\n\"id\":\"1\",\n\"T\":[\n\"A\",\n\"B\",\n\n}\n"),
std::runtime_error,
"json parse error on line 7 near");
EXPECT_THROW_RE( EXPECT_THROW_RE(
parseLogConfigJson("[1, 2, 3]"), parseLogConfigJson("[1, 2, 3]"),
LogConfigParseError, LogConfigParseError,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment