Memory cleanup

r1980 | dcl | 2007-05-24 14:49:02 +1000 (Thu, 24 May 2007) | 2 lines
This commit is contained in:
Douglas Clowes
2007-05-24 14:49:02 +10:00
parent 8678bcb102
commit 785fe7bb96
2 changed files with 18 additions and 1 deletions

View File

@@ -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)

View File

@@ -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;
}