I just found this (browsing Python source code):
I'm interested in the do..while block. Why did he / she / it do that ? I vaguely remember it being mentioned in one of my C++ books that I haven't read for ages, but can't remember for the life of me what the point of it is.Code:#define Py_CLEAR(op) \ do { \ if (op) { \ PyObject *tmp = (PyObject *)(op); \ (op) = NULL; \ Py_DECREF(tmp); \ } \ } while (0)