Memory cleanup
r1980 | dcl | 2007-05-24 14:49:02 +1000 (Thu, 24 May 2007) | 2 lines
This commit is contained in:
@@ -2908,6 +2908,7 @@ MotorDriver *CreateDMC2280(SConnection *pCon, char *motor, char *params) {
|
||||
pPtr, motor);
|
||||
SCWrite(pCon,pError,eError);
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
AsyncUnitSetNotify(pNew->asyncUnit, pNew, DMC_Notify);
|
||||
@@ -2918,6 +2919,7 @@ MotorDriver *CreateDMC2280(SConnection *pCon, char *motor, char *params) {
|
||||
snprintf(pError, ERRLEN, "\tError occurred when creating DMC2280 motor '%s'", motor);
|
||||
SCWrite(pCon,pError,eError);
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
/* AsyncUnit */
|
||||
@@ -2927,6 +2929,7 @@ MotorDriver *CreateDMC2280(SConnection *pCon, char *motor, char *params) {
|
||||
host, pPtr, motor);
|
||||
SCWrite(pCon,pError,eError);
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
AsyncUnitSetNotify(pNew->asyncUnit, pNew, DMC_Notify);
|
||||
@@ -2935,6 +2938,7 @@ MotorDriver *CreateDMC2280(SConnection *pCon, char *motor, char *params) {
|
||||
snprintf(pError, ERRLEN, "\tError occurred when creating DMC2280 motor '%s'", motor);
|
||||
SCWrite(pCon,pError,eError);
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -2943,6 +2947,7 @@ MotorDriver *CreateDMC2280(SConnection *pCon, char *motor, char *params) {
|
||||
(void) SCWrite(pCon,"ERROR: no memory to allocate motor driver",
|
||||
eError);
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -2991,44 +2996,52 @@ MotorDriver *CreateDMC2280(SConnection *pCon, char *motor, char *params) {
|
||||
}
|
||||
if ((pPtr=getParam(pCon, interp, params,HARDLOWERLIM,_REQUIRED)) == NULL) {
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%f",&(pNew->fLower));
|
||||
if ((pPtr=getParam(pCon, interp, params,HARDUPPERLIM,_REQUIRED)) == NULL) {
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%f",&(pNew->fUpper));
|
||||
if ((pPtr=getParam(pCon, interp, params,UNITS,_REQUIRED)) == NULL) {
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%s",pNew->units);
|
||||
if ((pPtr=getParam(pCon, interp, params,MAXSPEED,_REQUIRED)) == NULL) {
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%f",&(pNew->speed));
|
||||
pNew->maxSpeed = pNew->speed;
|
||||
if ((pPtr=getParam(pCon, interp, params,MAXACCEL,_REQUIRED)) == NULL) {
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%f",&(pNew->accel));
|
||||
pNew->maxAccel = pNew->accel;
|
||||
if ((pPtr=getParam(pCon, interp, params,MAXDECEL,_REQUIRED)) == NULL) {
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%f",&(pNew->decel));
|
||||
pNew->maxDecel = pNew->decel;
|
||||
if ((pPtr=getParam(pCon, interp, params,"axis",_REQUIRED)) == NULL) {
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%c",&(pNew->axisLabel));
|
||||
if ((pPtr=getParam(pCon, interp, params,"stepsperx",_REQUIRED)) == NULL) {
|
||||
KillDMC2280(pNew);
|
||||
free(pNew);
|
||||
return NULL;
|
||||
}
|
||||
sscanf(pPtr,"%f",&(pNew->stepsPerX));
|
||||
@@ -3142,7 +3155,7 @@ int DMC2280Action(SConnection *pCon, SicsInterp *pSics, void *pData,
|
||||
int i, j;
|
||||
cmd[0] = '\0';
|
||||
for (i = 2; i < argc; ++i) {
|
||||
j = snprintf(&cmd[idx], CMDLEN - j, "%s%s",
|
||||
j = snprintf(&cmd[idx], CMDLEN - idx, "%s%s",
|
||||
(i > 2) ? " " : "",
|
||||
argv[i]);
|
||||
if (j < 0)
|
||||
|
||||
@@ -445,6 +445,10 @@ static void PLC_Kill(void* pData)
|
||||
pSafetyPLCController self = (pSafetyPLCController) pData;
|
||||
if (self->nw_tmr)
|
||||
NetWatchRemoveTimer(self->nw_tmr);
|
||||
if (self->pDes) {
|
||||
DeleteDescriptor(self->pDes);
|
||||
self->pDes = NULL;
|
||||
}
|
||||
free(self);
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user