]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
closes bpo-39721: Fix constness of members of tok_state struct. (GH-18600)
authorAndy Lester <andy@petdance.com>
Fri, 28 Feb 2020 02:44:52 +0000 (20:44 -0600)
committerGitHub <noreply@github.com>
Fri, 28 Feb 2020 02:44:52 +0000 (18:44 -0800)
commit384f3c536dd15ba33ea7e8afb4087ae359d4c12e
tree06c9a69e7b273165ae9c583b12beaf5c53332584
parent766b7546a564c8e386a3c31eb06fc1b55e8f5a25
closes bpo-39721: Fix constness of members of tok_state struct. (GH-18600)

The function PyTokenizer_FromUTF8 from Parser/tokenizer.c had a comment:

    /* XXX: constify members. */

This patch addresses that.

In the tok_state struct:
    * end and start were non-const but could be made const
    * str and input were const but should have been non-const

Changes to support this include:
    * decode_str() now returns a char * since it is allocated.
    * PyTokenizer_FromString() and PyTokenizer_FromUTF8() each creates a
        new char * for an allocate string instead of reusing the input
        const char *.
    * PyTokenizer_Get() and tok_get() now take const char ** arguments.
    * Various local vars are const or non-const accordingly.

I was able to remove five casts that cast away constness.
Parser/parsetok.c
Parser/tokenizer.c
Parser/tokenizer.h