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