mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-139156: Use PyBytesWriter in _PyUnicode_EncodeCharmap() (#139251)
Replace PyBytes_FromStringAndSize() and _PyBytes_Resize() with the PyBytesWriter API. Add _PyBytesWriter_GetSize() and _PyBytesWriter_GetData() static inline functions.
This commit is contained in:
parent
06703d6637
commit
c9a79a02a8
3 changed files with 73 additions and 64 deletions
|
|
@ -73,6 +73,26 @@ struct PyBytesWriter {
|
|||
// Export for '_testcapi' shared extension
|
||||
PyAPI_FUNC(PyBytesWriter*) _PyBytesWriter_CreateByteArray(Py_ssize_t size);
|
||||
|
||||
static inline Py_ssize_t
|
||||
_PyBytesWriter_GetSize(PyBytesWriter *writer)
|
||||
{
|
||||
return writer->size;
|
||||
}
|
||||
|
||||
static inline char*
|
||||
_PyBytesWriter_GetData(PyBytesWriter *writer)
|
||||
{
|
||||
if (writer->obj == NULL) {
|
||||
return writer->small_buffer;
|
||||
}
|
||||
else if (writer->use_bytearray) {
|
||||
return PyByteArray_AS_STRING(writer->obj);
|
||||
}
|
||||
else {
|
||||
return PyBytes_AS_STRING(writer->obj);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue