for (slotIndex = slotParams; *slotIndex;
for (slotIndex = pk11_argStrip(slotParams); *slotIndex;
pk11_argParseSlotInfo(PRArenaPool *arena, char *slotParams, int *retCount){    char *slotIndex;    PK11PreSlotInfo *slotInfo = NULL;    int i=0,count = 0,next;    *retCount = 0;    if ((slotParams == NULL) || (*slotParams == 0))  return NULL;    /* first count the number of slots */    for (slotIndex = slotParams; *slotIndex; 		slotIndex = pk11_argStrip(pk11_argSkipParameter(slotIndex))) {	count++;    }    /* get the data structures */    if (arena) {	slotInfo = (PK11PreSlotInfo *) 			PORT_ArenaAlloc(arena,count*sizeof(PK11PreSlotInfo));    } else {	slotInfo = (PK11PreSlotInfo *) 			PORT_ZAlloc(count*sizeof(PK11PreSlotInfo));    }    if (slotInfo == NULL) return NULL;    for (slotIndex = slotParams, i = 0; *slotIndex && i < count ; i++) {	char *name;	name = pk11_argGetName(slotIndex,&next);	slotIndex += next;	if (!pk11_argIsBlank(*slotIndex)) {	    char *args = pk11_argFetchValue(slotIndex,&next);	    slotIndex += next;	    if (args) {		pk11_argDecodeSingleSlotInfo(name,args,&slotInfo[i]);		PORT_Free(args);	    }	}	if (name) PORT_Free(name);	slotIndex = pk11_argStrip(slotIndex);    }    *retCount = count;    return slotInfo;}