- Made init function in ascon handle errors

- Minor fixes to scriptcontext.c
This commit is contained in:
koennecke
2008-06-11 13:37:13 +00:00
parent e8a2d09aa6
commit 31e4a58870
6 changed files with 50 additions and 645 deletions

View File

@ -514,16 +514,16 @@ static void copyIntSicsData(pHdb node, pSICSData data){
if(node->value.arrayLength != data->dataUsed){
if(node->value.v.intArray != NULL){
free(node->value.v.intArray);
node->value.arrayLength = data->dataUsed;
node->value.v.intArray = malloc(data->dataUsed*sizeof(int));
if(node->value.v.intArray == NULL){
node->value.arrayLength = 0;
return;
}
memcpy(node->value.v.intArray, data->data,
data->dataUsed*sizeof(int));
}
node->value.arrayLength = data->dataUsed;
node->value.v.intArray = malloc(data->dataUsed*sizeof(int));
if(node->value.v.intArray == NULL){
node->value.arrayLength = 0;
return;
}
}
memcpy(node->value.v.intArray, data->data,
data->dataUsed*sizeof(int));
}
/*-----------------------------------------------------------------------*/
static void copyFloatSicsData(pHdb node, pSICSData data){
@ -533,17 +533,17 @@ static void copyFloatSicsData(pHdb node, pSICSData data){
if(node->value.arrayLength != data->dataUsed){
if(node->value.v.floatArray != NULL){
free(node->value.v.floatArray);
node->value.arrayLength = data->dataUsed;
node->value.v.floatArray = malloc(data->dataUsed*sizeof(double));
if(node->value.v.floatArray == NULL){
node->value.arrayLength = 0;
return;
}
for(i = 0; i < data->dataUsed; i++){
getSICSDataFloat(data,i,&val);
node->value.v.floatArray[i] = val;
}
}
node->value.arrayLength = data->dataUsed;
node->value.v.floatArray = malloc(data->dataUsed*sizeof(double));
if(node->value.v.floatArray == NULL){
node->value.arrayLength = 0;
return;
}
}
for(i = 0; i < data->dataUsed; i++){
getSICSDataFloat(data,i,&val);
node->value.v.floatArray[i] = val;
}
}
/*----------------------------------------------------------------------*/
@ -612,7 +612,6 @@ static hdbCallbackReturn SICSDataCallback(pHdb node, void *userData,
/*============== interpreter function ==================================*/
int SICSHdbAdapter(SConnection *pCon, SicsInterp *pSics, void *pData,
int argc, char *argv[]){
pHdb root = NULL;
pHdb path = NULL;
pHdb node = NULL;
pMotor pMot = NULL;
@ -627,9 +626,6 @@ int SICSHdbAdapter(SConnection *pCon, SicsInterp *pSics, void *pData,
int type;
pHdbCallback pCall = NULL;
root = GetHipadabaRoot();
assert(root != NULL);
if(!SCMatchRights(pCon,usMugger)){
return 0;
}
@ -638,7 +634,7 @@ int SICSHdbAdapter(SConnection *pCon, SicsInterp *pSics, void *pData,
return 0;
}
path = GetHipadabaNode(root,argv[1]);
path = FindHdbNode(NULL,argv[1],pCon);
if(path == NULL){
SCWrite(pCon,"ERROR: path to attach object too not found",eError);
return 0;