diff --git a/src/spicelib/analysis/cktpname.c b/src/spicelib/analysis/cktpname.c index 506174da7..e908c1226 100644 --- a/src/spicelib/analysis/cktpname.c +++ b/src/spicelib/analysis/cktpname.c @@ -32,20 +32,22 @@ CKTpName(char *parm, IFvalue *val, CKTcircuit *ckt, int dev, char *name, GENinst { IFdevice *device = &(DEVices[dev]->DEVpublic); int error; /* int to store evaluate error return codes in */ - int i; + + IFparm *p = device->instanceParms; + IFparm *p_end = p + *(device->numInstanceParms); NG_IGNORE(name); - for(i = 0 ; i < *(device->numInstanceParms) ; i++) { - if(!strcmp(parm, device->instanceParms[i].keyword)) { + for(; p < p_end ; p++) { + if(!strcmp(parm, p->keyword)) { error = CKTparam(ckt, *fast, - device->instanceParms[i].id, val, + p->id, val, NULL); if(error) return(error); break; } } - if(i == *(device->numInstanceParms)) { + if(p >= p_end) { return(E_BADPARM); } return(OK);