# HG changeset patch # User Fredrik Lundh # Date 1257421617 -3600 # Node ID c6a248bf2463ddc53a6eb4c50b41cdf83680ffb9 # Parent 3d923899b532b8d445243597d1e68cc074c71cf8 Double quotes are required by the JSON format, so might as well spell it out. This also gives a small speedup for Unicode. diff -r 3d923899b532b8d445243597d1e68cc074c71cf8 -r c6a248bf2463ddc53a6eb4c50b41cdf83680ffb9 cjson.c --- a/cjson.c Thu Nov 05 12:40:32 2009 +0100 +++ b/cjson.c Thu Nov 05 12:46:57 2009 +0100 @@ -564,18 +564,15 @@ register Py_ssize_t i; register char c; register char *p; - int quote; - - quote = '"'; p = PyString_AS_STRING(v); - *p++ = quote; + *p++ = '"'; for (i = 0; i < op->ob_size; i++) { /* There's at least enough room for a hex escape and a closing quote. */ assert(newsize - (p - PyString_AS_STRING(v)) >= 7); c = op->ob_sval[i]; - if (c == quote || c == '\\') + if (c == '"' || c == '\\') *p++ = '\\', *p++ = c; else if (c >= ' ' && c < 0x7f) *p++ = c; @@ -599,8 +596,8 @@ } } assert(newsize - (p - PyString_AS_STRING(v)) >= 1); - *p++ = quote; - *p = '\0'; + *p++ = '"'; + _PyString_Resize(&v, (int) (p - PyString_AS_STRING(v))); return v; } @@ -645,7 +642,7 @@ Py_UNICODE ch = *s++; /* Escape quotes */ - if ((ch == (Py_UNICODE) PyString_AS_STRING(repr)[0] || ch == '\\')) { + if ((ch == '"' || ch == '\\')) { *p++ = '\\'; *p++ = (char) ch; } @@ -748,9 +745,8 @@ } } - *p++ = PyString_AS_STRING(repr)[0]; + *p++ = '"'; - *p = '\0'; _PyString_Resize(&repr, p - PyString_AS_STRING(repr)); return repr; }