| 357 | char tmp[64]; |
| 358 | const int n = d->v[tok].end - d->v[tok].start; |
| 359 | if (n <= 0 || n >= (int)sizeof(tmp)) die("bad JSON integer"); |
| 360 | memcpy(tmp, d->js + d->v[tok].start, (size_t)n); |
| 361 | tmp[n] = '\0'; |
| 362 | return strtoll(tmp, NULL, 10); |
| 363 | } |
| 364 | |
| 365 | static double json_f64(const json_doc *d, int tok) { |
| 366 | char tmp[128]; |
| 367 | const int n = d->v[tok].end - d->v[tok].start; |
| 368 | if (n <= 0 || n >= (int)sizeof(tmp)) die("bad JSON number"); |
| 369 | memcpy(tmp, d->js + d->v[tok].start, (size_t)n); |
| 370 | tmp[n] = '\0'; |
| 371 | errno = 0; |
no test coverage detected