From 9d3b522e7b97b9b9446a33fb22cac21bb680ac80 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Sun, 7 Sep 2014 20:11:33 +0200 Subject: [PATCH] Reduced code size (-6 bytes) --- JsonParser/JsonToken.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/JsonParser/JsonToken.cpp b/JsonParser/JsonToken.cpp index fdbc3af4..a1041287 100644 --- a/JsonParser/JsonToken.cpp +++ b/JsonParser/JsonToken.cpp @@ -9,14 +9,15 @@ using namespace ArduinoJson::Parser; static char unescapeChar(char c) { - switch (c) + // Optimized for code size on a 8-bit AVR + + const char* p = "b\bf\fn\nr\rt\t"; + + while (true) { - case 'b': return '\b'; - case 'f': return '\f'; - case 'n': return '\n'; - case 'r': return '\r'; - case 't': return '\t'; - default: return c; + if (p[0] == 0) return c; + if (p[0] == c) return p[1]; + p += 2; } }