From: <kin...@us...> - 2009-03-23 06:08:36
|
Revision: 4209 http://teem.svn.sourceforge.net/teem/?rev=4209&view=rev Author: kindlmann Date: 2009-03-23 06:08:33 +0000 (Mon, 23 Mar 2009) Log Message: ----------- API change, but not really: * changed definition of _AIR_PTRDIFF_T_CNV, I think for the better * airMopAdd now returns 0. This facilitates its use in a sequence of calls being error-checked by looking for non-zero return values. Modified Paths: -------------- teem/trunk/src/air/air.h teem/trunk/src/air/mop.c Modified: teem/trunk/src/air/air.h =================================================================== --- teem/trunk/src/air/air.h 2009-03-23 06:05:50 UTC (rev 4208) +++ teem/trunk/src/air/air.h 2009-03-23 06:08:33 UTC (rev 4209) @@ -569,7 +569,7 @@ int when; /* from the airMopWhen enum */ } airMop; AIR_EXPORT airArray *airMopNew(void); -AIR_EXPORT void airMopAdd(airArray *arr, void *ptr, airMopper mop, int when); +AIR_EXPORT int airMopAdd(airArray *arr, void *ptr, airMopper mop, int when); AIR_EXPORT void airMopSub(airArray *arr, void *ptr, airMopper mop); AIR_EXPORT void airMopMem(airArray *arr, void *_ptrP, int when); AIR_EXPORT void airMopUnMem(airArray *arr, void *_ptrP); @@ -857,7 +857,7 @@ */ #ifdef __APPLE__ # define _AIR_SIZE_T_CNV "%lu" -# define _AIR_PTRDIFF_T_CNV "%d" +# define _AIR_PTRDIFF_T_CNV "%ld" #else # if TEEM_32BIT == 0 # ifdef _WIN64 Modified: teem/trunk/src/air/mop.c =================================================================== --- teem/trunk/src/air/mop.c 2009-03-23 06:05:50 UTC (rev 4208) +++ teem/trunk/src/air/mop.c 2009-03-23 06:08:33 UTC (rev 4209) @@ -63,13 +63,25 @@ return airArrayNew(NULL, NULL, sizeof(airMop), AIR_MOP_INCR); } -void +/* +** this always returns 0, to facilitate this weird idiom: +** +** if (!(nmeasr = nrrdNew()) +** || airMopAdd(mop, nmeasr, (airMopper)nrrdNuke, airMopAlways) +** || !(nsize = nrrdNew()) +** || airMopAdd(mop, nsize, (airMopper)nrrdNuke, airMopAlways) +** || !(pair = AIR_CAST(ccpair *, calloc(pctx->CCNum, sizeof(ccpair)))) +** || airMopAdd(mop, pair, airFree, airMopAlways)) { +** +** GLK may regret this. +*/ +int airMopAdd(airArray *arr, void *ptr, airMopper mop, int when) { airMop *mops; unsigned int ii; if (!arr) { - return; + return 0; } mops = (airMop *)arr->data; @@ -78,7 +90,7 @@ if (mops[ii].ptr == ptr && mops[ii].mop == mop) { mops[ii].when = when; /* we're done */ - return; + return 0; } } /* this is a new ptr */ @@ -87,7 +99,7 @@ mops[ii].ptr = ptr; mops[ii].mop = mop; mops[ii].when = when; - return; + return 0; } void This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |