Woot, looks like i'm reading an explanation of how i code since more than two years!
So many people screams against goto, even more when goto is "hidden" in a macro. But when you read some code with a function call followed by a simple "GOTO_IFERR()" which check if an error occurred, trace the error properly and then goes to a specific part for each function where cleanup will be handled everythings seems really cleaner for me