| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -97,7 +97,7 @@ w_more(int c, WFILE *p) | |||
| 97 | 97 | } | |
| 98 | 98 | ||
| 99 | 99 | static void | |
| 100 | - w_string(char *s, Py_ssize_t n, WFILE *p) | ||
| 100 | + w_string(const char *s, Py_ssize_t n, WFILE *p) | ||
| 101 | 101 | { | |
| 102 | 102 | if (p->fp != NULL) { | |
| 103 | 103 | fwrite(s, 1, n, p->fp); | |
@@ -141,6 +141,13 @@ w_long(long x, WFILE *p) | |||
| 141 | 141 | # define W_SIZE w_long | |
| 142 | 142 | #endif | |
| 143 | 143 | ||
| 144 | + static void | ||
| 145 | + w_pstring(const char *s, Py_ssize_t n, WFILE *p) | ||
| 146 | + { | ||
| 147 | + W_SIZE(n, p); | ||
| 148 | + w_string(s, n, p); | ||
| 149 | + } | ||
| 150 | + | ||
| 144 | 151 | /* We assume that Python longs are stored internally in base some power of | |
| 145 | 152 | 2**15; for the sake of portability we'll always read and write them in base | |
| 146 | 153 | exactly 2**15. */ | |
@@ -384,9 +391,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p) | |||
| 384 | 391 | } | |
| 385 | 392 | else if (PyBytes_CheckExact(v)) { | |
| 386 | 393 | W_TYPE(TYPE_STRING, p); | |
| 387 | - n = PyBytes_GET_SIZE(v); | ||
| 388 | - W_SIZE(n, p); | ||
| 389 | - w_string(PyBytes_AS_STRING(v), n, p); | ||
| 394 | + w_pstring(PyBytes_AS_STRING(v), PyBytes_GET_SIZE(v), p); | ||
| 390 | 395 | } | |
| 391 | 396 | else if (PyUnicode_CheckExact(v)) { | |
| 392 | 397 | PyObject *utf8; | |
@@ -400,9 +405,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p) | |||
| 400 | 405 | W_TYPE(TYPE_INTERNED, p); | |
| 401 | 406 | else | |
| 402 | 407 | W_TYPE(TYPE_UNICODE, p); | |
| 403 | - n = PyBytes_GET_SIZE(utf8); | ||
| 404 | - W_SIZE(n, p); | ||
| 405 | - w_string(PyBytes_AS_STRING(utf8), n, p); | ||
| 408 | + w_pstring(PyBytes_AS_STRING(utf8), PyBytes_GET_SIZE(utf8), p); | ||
| 406 | 409 | Py_DECREF(utf8); | |
| 407 | 410 | } | |
| 408 | 411 | else if (PyTuple_CheckExact(v)) { | |
@@ -485,7 +488,6 @@ w_complex_object(PyObject *v, char flag, WFILE *p) | |||
| 485 | 488 | } | |
| 486 | 489 | else if (PyObject_CheckBuffer(v)) { | |
| 487 | 490 | /* Write unknown buffer-style objects as a string */ | |
| 488 | - char *s; | ||
| 489 | 491 | Py_buffer view; | |
| 490 | 492 | if (PyObject_GetBuffer(v, &view, PyBUF_SIMPLE) != 0) { | |
| 491 | 493 | w_byte(TYPE_UNKNOWN, p); | |
@@ -494,10 +496,7 @@ w_complex_object(PyObject *v, char flag, WFILE *p) | |||
| 494 | 496 | return; | |
| 495 | 497 | } | |
| 496 | 498 | W_TYPE(TYPE_STRING, p); | |
| 497 | - n = view.len; | ||
| 498 | - s = view.buf; | ||
| 499 | - W_SIZE(n, p); | ||
| 500 | - w_string(s, n, p); | ||
| 499 | + w_pstring(view.buf, view.len, p); | ||
| 501 | 500 | PyBuffer_Release(&view); | |
| 502 | 501 | } | |
| 503 | 502 | else { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments