Лучше, кстати, проверки начинать с наиболее дешевых — вроде `(ignore && !newMsg && !msg->...)`. Но это так, на будущее, здесь это совершенно некритично, да и компилятор вполне тут может порядок поменять, наверное, если докажет, что сайд-эффектов от этого не будет.