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 {
return range_.begin();
}
// Parse ahead for as long as the supplied predicate is satisfied,
// returning a range of what was skipped.
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) {
if (!p(range_[skipped])) {
return skipped;
break;
}
if (range_[skipped] == '\n') {
++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);
range_.advance(skipped);
storeCurrent();
......@@ -254,19 +249,7 @@ struct Input {
}
void skipWhitespace() {
std::size_t endOfWhiteSpaces = 0;
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);
range_ = folly::skipWhitespace(range_);
storeCurrent();
}
......
......@@ -353,16 +353,6 @@ TEST(LogConfig, parseJsonErrors) {
parseLogConfigJson(R"("hello")"),
LogConfigParseError,
"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(
parseLogConfigJson("[1, 2, 3]"),
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