Fixed undefined behavior in Prettyfier and Print (issue #354)

This commit is contained in:
Benoit Blanchon
2016-09-17 13:51:54 +02:00
parent 2f6f3d0629
commit 8a9b918bf4
3 changed files with 31 additions and 7 deletions

View File

@ -66,28 +66,46 @@ class Prettyfier : public Print {
}
size_t writeBlockClose(uint8_t c) {
return unindentIfNeeded() + _sink.write(c);
size_t n = 0;
n += unindentIfNeeded();
n += _sink.write(c);
return n;
}
size_t writeBlockOpen(uint8_t c) {
return indentIfNeeded() + _sink.write(c);
size_t n = 0;
n += indentIfNeeded();
n += _sink.write(c);
return n;
}
size_t writeColon() {
return _sink.write(':') + _sink.write(' ');
size_t n = 0;
n += _sink.write(':');
n += _sink.write(' ');
return n;
}
size_t writeComma() {
return _sink.write(',') + _sink.println();
size_t n = 0;
n += _sink.write(',');
n += _sink.println();
return n;
}
size_t writeQuoteOpen() {
_inString = true;
return indentIfNeeded() + _sink.write('"');
size_t n = 0;
n += indentIfNeeded();
n += _sink.write('"');
return n;
}
size_t writeNormalChar(uint8_t c) {
return indentIfNeeded() + _sink.write(c);
size_t n = 0;
n += indentIfNeeded();
n += _sink.write(c);
return n;
}
size_t indentIfNeeded() {

View File

@ -28,7 +28,12 @@ class Print {
return n;
}
size_t println() { return write('\r') + write('\n'); }
size_t println() {
size_t n = 0;
n += write('\r');
n += write('\n');
return n;
}
};
}