The first commit deleted a line it shouldn't have. I thought that a
variable wasn't modified before reaching that line, but it turns out it
was because another variable is set to point to its address, and was
modified inside a subroutine call. The other two lines deleted in the
first commit are ok to have deleted.

The second commit masked the problems of the first by omitting some
necessary grouping parentheses, which caused things to not work as
intended, and we didn't have a good test case in our suite to find this
problem. (Thanks to Lukas Mai for spotting the problem and submitting a
test case.)