Save a long long value as either an encoded string or a string. */
| 472 | |
| 473 | /* Save a long long value as either an encoded string or a string. */ |
| 474 | ssize_t rdbSaveLongLongAsStringObject(rio *rdb, long long value) { |
| 475 | unsigned char buf[32]; |
| 476 | ssize_t n, nwritten = 0; |
| 477 | int enclen = rdbEncodeInteger(value,buf); |
| 478 | if (enclen > 0) { |
| 479 | return rdbWriteRaw(rdb,buf,enclen); |
| 480 | } else { |
| 481 | /* Encode as string */ |
| 482 | enclen = ll2string((char*)buf,32,value); |
| 483 | serverAssert(enclen < 32); |
| 484 | if ((n = rdbSaveLen(rdb,enclen)) == -1) return -1; |
| 485 | nwritten += n; |
| 486 | if ((n = rdbWriteRaw(rdb,buf,enclen)) == -1) return -1; |
| 487 | nwritten += n; |
| 488 | } |
| 489 | return nwritten; |
| 490 | } |
| 491 | |
| 492 | /* Like rdbSaveRawString() gets a Redis object instead. */ |
| 493 | ssize_t rdbSaveStringObject(rio *rdb, robj_roptr obj) { |
no test coverage detected