equal
deleted
inserted
replaced
292 PyErr_SetString(PyExc_ValueError, |
292 PyErr_SetString(PyExc_ValueError, |
293 "cannot process non-ascii str"); |
293 "cannot process non-ascii str"); |
294 return -1; |
294 return -1; |
295 } |
295 } |
296 esclen += jsonparanoidlentable[(unsigned char)c]; |
296 esclen += jsonparanoidlentable[(unsigned char)c]; |
|
297 if (esclen < 0) { |
|
298 PyErr_SetString(PyExc_MemoryError, |
|
299 "overflow in jsonescapelen"); |
|
300 return -1; |
|
301 } |
297 } |
302 } |
298 } else { |
303 } else { |
299 for (i = 0; i < len; i++) { |
304 for (i = 0; i < len; i++) { |
300 char c = buf[i]; |
305 char c = buf[i]; |
301 esclen += jsonlentable[(unsigned char)c]; |
306 esclen += jsonlentable[(unsigned char)c]; |
|
307 if (esclen < 0) { |
|
308 PyErr_SetString(PyExc_MemoryError, |
|
309 "overflow in jsonescapelen"); |
|
310 return -1; |
|
311 } |
302 } |
312 } |
303 } |
313 } |
304 |
314 |
305 return esclen; |
315 return esclen; |
306 } |
316 } |
364 |
374 |
365 origbuf = PyBytes_AS_STRING(origstr); |
375 origbuf = PyBytes_AS_STRING(origstr); |
366 origlen = PyBytes_GET_SIZE(origstr); |
376 origlen = PyBytes_GET_SIZE(origstr); |
367 esclen = jsonescapelen(origbuf, origlen, paranoid); |
377 esclen = jsonescapelen(origbuf, origlen, paranoid); |
368 if (esclen < 0) |
378 if (esclen < 0) |
369 return NULL; /* unsupported char found */ |
379 return NULL; /* unsupported char found or overflow */ |
370 if (origlen == esclen) { |
380 if (origlen == esclen) { |
371 Py_INCREF(origstr); |
381 Py_INCREF(origstr); |
372 return origstr; |
382 return origstr; |
373 } |
383 } |
374 |
384 |