Rename unicode_write_t structure and its methods to "_PyUnicodeWriter"
This commit is contained in:
parent
ee4544c920
commit
3b1a74a9c3
|
@ -494,7 +494,7 @@ error:
|
||||||
appends to the output.
|
appends to the output.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
render_field(PyObject *fieldobj, SubString *format_spec, unicode_writer_t *writer)
|
render_field(PyObject *fieldobj, SubString *format_spec, _PyUnicodeWriter *writer)
|
||||||
{
|
{
|
||||||
int ok = 0;
|
int ok = 0;
|
||||||
PyObject *result = NULL;
|
PyObject *result = NULL;
|
||||||
|
@ -540,7 +540,7 @@ render_field(PyObject *fieldobj, SubString *format_spec, unicode_writer_t *write
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
len = PyUnicode_GET_LENGTH(result);
|
len = PyUnicode_GET_LENGTH(result);
|
||||||
if (unicode_writer_prepare(writer,
|
if (_PyUnicodeWriter_Prepare(writer,
|
||||||
len, PyUnicode_MAX_CHAR_VALUE(result)) == -1)
|
len, PyUnicode_MAX_CHAR_VALUE(result)) == -1)
|
||||||
goto done;
|
goto done;
|
||||||
copy_characters(writer->buffer, writer->pos,
|
copy_characters(writer->buffer, writer->pos,
|
||||||
|
@ -811,7 +811,7 @@ do_conversion(PyObject *obj, Py_UCS4 conversion)
|
||||||
static int
|
static int
|
||||||
output_markup(SubString *field_name, SubString *format_spec,
|
output_markup(SubString *field_name, SubString *format_spec,
|
||||||
int format_spec_needs_expanding, Py_UCS4 conversion,
|
int format_spec_needs_expanding, Py_UCS4 conversion,
|
||||||
unicode_writer_t *writer, PyObject *args, PyObject *kwargs,
|
_PyUnicodeWriter *writer, PyObject *args, PyObject *kwargs,
|
||||||
int recursion_depth, AutoNumber *auto_number)
|
int recursion_depth, AutoNumber *auto_number)
|
||||||
{
|
{
|
||||||
PyObject *tmp = NULL;
|
PyObject *tmp = NULL;
|
||||||
|
@ -872,7 +872,7 @@ done:
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
do_markup(SubString *input, PyObject *args, PyObject *kwargs,
|
do_markup(SubString *input, PyObject *args, PyObject *kwargs,
|
||||||
unicode_writer_t *writer, int recursion_depth, AutoNumber *auto_number)
|
_PyUnicodeWriter *writer, int recursion_depth, AutoNumber *auto_number)
|
||||||
{
|
{
|
||||||
MarkupIterator iter;
|
MarkupIterator iter;
|
||||||
int format_spec_needs_expanding;
|
int format_spec_needs_expanding;
|
||||||
|
@ -894,7 +894,7 @@ do_markup(SubString *input, PyObject *args, PyObject *kwargs,
|
||||||
if (sublen) {
|
if (sublen) {
|
||||||
maxchar = _PyUnicode_FindMaxChar(literal.str,
|
maxchar = _PyUnicode_FindMaxChar(literal.str,
|
||||||
literal.start, literal.end);
|
literal.start, literal.end);
|
||||||
err = unicode_writer_prepare(writer, sublen, maxchar);
|
err = _PyUnicodeWriter_Prepare(writer, sublen, maxchar);
|
||||||
if (err == -1)
|
if (err == -1)
|
||||||
return 0;
|
return 0;
|
||||||
copy_characters(writer->buffer, writer->pos,
|
copy_characters(writer->buffer, writer->pos,
|
||||||
|
@ -920,7 +920,7 @@ static PyObject *
|
||||||
build_string(SubString *input, PyObject *args, PyObject *kwargs,
|
build_string(SubString *input, PyObject *args, PyObject *kwargs,
|
||||||
int recursion_depth, AutoNumber *auto_number)
|
int recursion_depth, AutoNumber *auto_number)
|
||||||
{
|
{
|
||||||
unicode_writer_t writer;
|
_PyUnicodeWriter writer;
|
||||||
Py_ssize_t initlen;
|
Py_ssize_t initlen;
|
||||||
|
|
||||||
/* check the recursion level */
|
/* check the recursion level */
|
||||||
|
@ -931,16 +931,16 @@ build_string(SubString *input, PyObject *args, PyObject *kwargs,
|
||||||
}
|
}
|
||||||
|
|
||||||
initlen = PyUnicode_GET_LENGTH(input->str) + 100;
|
initlen = PyUnicode_GET_LENGTH(input->str) + 100;
|
||||||
if (unicode_writer_init(&writer, initlen, 127) == -1)
|
if (_PyUnicodeWriter_Init(&writer, initlen, 127) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (!do_markup(input, args, kwargs, &writer, recursion_depth,
|
if (!do_markup(input, args, kwargs, &writer, recursion_depth,
|
||||||
auto_number)) {
|
auto_number)) {
|
||||||
unicode_writer_dealloc(&writer);
|
_PyUnicodeWriter_Dealloc(&writer);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return unicode_writer_finish(&writer);
|
return _PyUnicodeWriter_Finish(&writer);
|
||||||
}
|
}
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
|
|
@ -13207,10 +13207,10 @@ typedef struct {
|
||||||
enum PyUnicode_Kind kind;
|
enum PyUnicode_Kind kind;
|
||||||
Py_UCS4 maxchar;
|
Py_UCS4 maxchar;
|
||||||
Py_ssize_t pos;
|
Py_ssize_t pos;
|
||||||
} unicode_writer_t;
|
} _PyUnicodeWriter ;
|
||||||
|
|
||||||
Py_LOCAL_INLINE(void)
|
Py_LOCAL_INLINE(void)
|
||||||
unicode_writer_update(unicode_writer_t *writer)
|
_PyUnicodeWriter_Update(_PyUnicodeWriter *writer)
|
||||||
{
|
{
|
||||||
writer->maxchar = PyUnicode_MAX_CHAR_VALUE(writer->buffer);
|
writer->maxchar = PyUnicode_MAX_CHAR_VALUE(writer->buffer);
|
||||||
writer->data = PyUnicode_DATA(writer->buffer);
|
writer->data = PyUnicode_DATA(writer->buffer);
|
||||||
|
@ -13218,19 +13218,19 @@ unicode_writer_update(unicode_writer_t *writer)
|
||||||
}
|
}
|
||||||
|
|
||||||
Py_LOCAL(int)
|
Py_LOCAL(int)
|
||||||
unicode_writer_init(unicode_writer_t *writer,
|
_PyUnicodeWriter_Init(_PyUnicodeWriter *writer,
|
||||||
Py_ssize_t length, Py_UCS4 maxchar)
|
Py_ssize_t length, Py_UCS4 maxchar)
|
||||||
{
|
{
|
||||||
writer->pos = 0;
|
writer->pos = 0;
|
||||||
writer->buffer = PyUnicode_New(length, maxchar);
|
writer->buffer = PyUnicode_New(length, maxchar);
|
||||||
if (writer->buffer == NULL)
|
if (writer->buffer == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
unicode_writer_update(writer);
|
_PyUnicodeWriter_Update(writer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Py_LOCAL_INLINE(int)
|
Py_LOCAL_INLINE(int)
|
||||||
unicode_writer_prepare(unicode_writer_t *writer,
|
_PyUnicodeWriter_Prepare(_PyUnicodeWriter *writer,
|
||||||
Py_ssize_t length, Py_UCS4 maxchar)
|
Py_ssize_t length, Py_UCS4 maxchar)
|
||||||
{
|
{
|
||||||
Py_ssize_t newlen;
|
Py_ssize_t newlen;
|
||||||
|
@ -13262,18 +13262,18 @@ unicode_writer_prepare(unicode_writer_t *writer,
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
writer->buffer = newbuffer;
|
writer->buffer = newbuffer;
|
||||||
unicode_writer_update(writer);
|
_PyUnicodeWriter_Update(writer);
|
||||||
}
|
}
|
||||||
else if (maxchar > writer->maxchar) {
|
else if (maxchar > writer->maxchar) {
|
||||||
if (unicode_widen(&writer->buffer, writer->pos, maxchar) < 0)
|
if (unicode_widen(&writer->buffer, writer->pos, maxchar) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
unicode_writer_update(writer);
|
_PyUnicodeWriter_Update(writer);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Py_LOCAL(PyObject *)
|
Py_LOCAL(PyObject *)
|
||||||
unicode_writer_finish(unicode_writer_t *writer)
|
_PyUnicodeWriter_Finish(_PyUnicodeWriter *writer)
|
||||||
{
|
{
|
||||||
if (PyUnicode_Resize(&writer->buffer, writer->pos) < 0) {
|
if (PyUnicode_Resize(&writer->buffer, writer->pos) < 0) {
|
||||||
Py_DECREF(writer->buffer);
|
Py_DECREF(writer->buffer);
|
||||||
|
@ -13284,7 +13284,7 @@ unicode_writer_finish(unicode_writer_t *writer)
|
||||||
}
|
}
|
||||||
|
|
||||||
Py_LOCAL(void)
|
Py_LOCAL(void)
|
||||||
unicode_writer_dealloc(unicode_writer_t *writer)
|
_PyUnicodeWriter_Dealloc(_PyUnicodeWriter *writer)
|
||||||
{
|
{
|
||||||
Py_CLEAR(writer->buffer);
|
Py_CLEAR(writer->buffer);
|
||||||
}
|
}
|
||||||
|
@ -13749,7 +13749,7 @@ PyUnicode_Format(PyObject *format, PyObject *args)
|
||||||
PyObject *uformat;
|
PyObject *uformat;
|
||||||
void *fmt;
|
void *fmt;
|
||||||
enum PyUnicode_Kind kind, fmtkind;
|
enum PyUnicode_Kind kind, fmtkind;
|
||||||
unicode_writer_t writer;
|
_PyUnicodeWriter writer;
|
||||||
Py_ssize_t sublen;
|
Py_ssize_t sublen;
|
||||||
Py_UCS4 maxchar;
|
Py_UCS4 maxchar;
|
||||||
|
|
||||||
|
@ -13768,7 +13768,7 @@ PyUnicode_Format(PyObject *format, PyObject *args)
|
||||||
fmtcnt = PyUnicode_GET_LENGTH(uformat);
|
fmtcnt = PyUnicode_GET_LENGTH(uformat);
|
||||||
fmtpos = 0;
|
fmtpos = 0;
|
||||||
|
|
||||||
if (unicode_writer_init(&writer, fmtcnt + 100, 127) < 0)
|
if (_PyUnicodeWriter_Init(&writer, fmtcnt + 100, 127) < 0)
|
||||||
goto onError;
|
goto onError;
|
||||||
|
|
||||||
if (PyTuple_Check(args)) {
|
if (PyTuple_Check(args)) {
|
||||||
|
@ -13797,7 +13797,7 @@ PyUnicode_Format(PyObject *format, PyObject *args)
|
||||||
sublen = fmtpos - nonfmtpos;
|
sublen = fmtpos - nonfmtpos;
|
||||||
maxchar = _PyUnicode_FindMaxChar(uformat,
|
maxchar = _PyUnicode_FindMaxChar(uformat,
|
||||||
nonfmtpos, nonfmtpos + sublen);
|
nonfmtpos, nonfmtpos + sublen);
|
||||||
if (unicode_writer_prepare(&writer, sublen, maxchar) == -1)
|
if (_PyUnicodeWriter_Prepare(&writer, sublen, maxchar) == -1)
|
||||||
goto onError;
|
goto onError;
|
||||||
|
|
||||||
copy_characters(writer.buffer, writer.pos,
|
copy_characters(writer.buffer, writer.pos,
|
||||||
|
@ -13961,7 +13961,7 @@ PyUnicode_Format(PyObject *format, PyObject *args)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c == '%') {
|
if (c == '%') {
|
||||||
if (unicode_writer_prepare(&writer, 1, '%') == -1)
|
if (_PyUnicodeWriter_Prepare(&writer, 1, '%') == -1)
|
||||||
goto onError;
|
goto onError;
|
||||||
PyUnicode_WRITE(writer.kind, writer.data, writer.pos, '%');
|
PyUnicode_WRITE(writer.kind, writer.data, writer.pos, '%');
|
||||||
writer.pos += 1;
|
writer.pos += 1;
|
||||||
|
@ -14119,7 +14119,7 @@ PyUnicode_Format(PyObject *format, PyObject *args)
|
||||||
if (sign && len == width)
|
if (sign && len == width)
|
||||||
buflen++;
|
buflen++;
|
||||||
|
|
||||||
if (unicode_writer_prepare(&writer, buflen, bufmaxchar) == -1)
|
if (_PyUnicodeWriter_Prepare(&writer, buflen, bufmaxchar) == -1)
|
||||||
goto onError;
|
goto onError;
|
||||||
|
|
||||||
/* Write characters */
|
/* Write characters */
|
||||||
|
@ -14195,13 +14195,13 @@ PyUnicode_Format(PyObject *format, PyObject *args)
|
||||||
Py_DECREF(uformat);
|
Py_DECREF(uformat);
|
||||||
Py_XDECREF(temp);
|
Py_XDECREF(temp);
|
||||||
Py_XDECREF(second);
|
Py_XDECREF(second);
|
||||||
return unicode_writer_finish(&writer);
|
return _PyUnicodeWriter_Finish(&writer);
|
||||||
|
|
||||||
onError:
|
onError:
|
||||||
Py_DECREF(uformat);
|
Py_DECREF(uformat);
|
||||||
Py_XDECREF(temp);
|
Py_XDECREF(temp);
|
||||||
Py_XDECREF(second);
|
Py_XDECREF(second);
|
||||||
unicode_writer_dealloc(&writer);
|
_PyUnicodeWriter_Dealloc(&writer);
|
||||||
if (args_owned) {
|
if (args_owned) {
|
||||||
Py_DECREF(args);
|
Py_DECREF(args);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue