On Mon, Nov 26, 2007 at 05:37:34PM -0500, Dan McGee wrote:
MALLOC(miss, sizeof(pmdepmissing_t), ret = -1); if(ret == -1) { /* free the lists */ pm_errno = blabla; goto cleanup; }
?
I don't know how MACRO handle arguments, so I wasn't sure this was possible.
I think it looks OK. Remember that a macro gets handled during preprocessing and isn't a function call at all, so you can do a few things you wouldn't normally be able to. Want to check? Look into using "gcc -E <sourcefile>", which just spits the preprocessed code back at you so you can check things.
Ok, thanks for the tip. Does it still look OK by using pm_errno instead of ret? MALLOC(miss, sizeof(pmdepmissing_t), pm_errno = PM_ERR_MEMORY); if(om_errno == PM_ERR_MEMORY) { /* free the lists */ ret = -1; goto cleanup; } I'm asking because I noticed MALLOC could be used in resolvedeps too, but there isn't already a ret variable there :) I made this change for resolvedeps in my working branch, and for sync_prepare in my sync branch.