Why the extra check for !full_readbuf->empty? We're already in a block where we know this is true.