summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Adams2011-03-28 05:58:55 +0000
committerJoey Adams2011-03-28 14:51:34 +0000
commit3f60c8123bfa30b88bf5b78cceff91153cb51110 (patch)
treeade231329aaa77bef2aa654cca51baf9f3f08123
parent4a6312ceb561fba8902a28b29764a70276d1555c (diff)
json.c: Simplify stringify_value by invoking expect_value to catch all the scalar cases
-rw-r--r--json.c29
1 files changed, 3 insertions, 26 deletions
diff --git a/json.c b/json.c
index a0756e5..9c75820 100644
--- a/json.c
+++ b/json.c
@@ -484,24 +484,6 @@ stringify_value(StringInfo buf, const char *s, const char *e,
switch (*s)
{
- case 'n':
- appendStringInfoString(buf, "null");
- return s + 4;
- case 'f':
- appendStringInfoString(buf, "false");
- return s + 5;
- case 't':
- appendStringInfoString(buf, "true");
- return s + 4;
- case '-':
- s2 = expect_number(s, e);
- appendBinaryStringInfo(buf, s, s2 - s);
- return s2;
- case '"':
- s2 = expect_string(s, e);
- appendBinaryStringInfo(buf, s, s2 - s);
- return s2;
-
case '[':
appendStringInfoString(buf, "[\n");
s++;
@@ -552,14 +534,9 @@ stringify_value(StringInfo buf, const char *s, const char *e,
return s + 1;
default:
- if (is_digit(*s))
- {
- s2 = expect_number(s, e);
- appendBinaryStringInfo(buf, s, s2 - s);
- return s2;
- }
- report_corrupt_json();
- return NULL;
+ s2 = expect_value(s, e);
+ appendBinaryStringInfo(buf, s, s2 - s);
+ return s2;
}
}