Improve code clarity in epilogue of UTF-8 verification fast path
authorJohn Naylor <john.naylor@postgresql.org>
Tue, 18 Jan 2022 03:53:50 +0000 (22:53 -0500)
committerJohn Naylor <john.naylor@postgresql.org>
Tue, 18 Jan 2022 03:53:50 +0000 (22:53 -0500)
commitd3f45323bbe734bff1f778bb819ce95b718d73ed
tree85d3a8f03c95c0ce85525ce7b84aea87b13a2af6
parent9007d4ea774edd815efeb0e0ef954127841beb2f
Improve code clarity in epilogue of UTF-8 verification fast path

The previous coding was correct, but the style and commentary were a bit
vague about which operations had to happen, in what circumstances, and
in what order. Rearrange so that the epilogue does nothing in the DFA END
state. That allows turning some conditional statements in the backtracking
logic into asserts. With that, we can be more explicit about needing
to backtrack at least one byte in non-END states to ensure checking the
current byte sequence in the slow path. No change to the regression tests,
since they should be able catch deficiencies here already.

In passing, improve the comments around DFA states where the first
continuation byte has a restricted range.
src/common/wchar.c