From: clement r. <kl...@us...> - 2005-11-08 19:17:28
|
Update of /cvsroot/robotflow/RobotFlow/MARIE/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6274/MARIE/src Modified Files: newMarieCommandBehavior.cpp Log Message: add a empty vector check Index: newMarieCommandBehavior.cpp =================================================================== RCS file: /cvsroot/robotflow/RobotFlow/MARIE/src/newMarieCommandBehavior.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** newMarieCommandBehavior.cpp 12 Sep 2005 21:31:19 -0000 1.10 --- newMarieCommandBehavior.cpp 8 Nov 2005 19:17:15 -0000 1.11 *************** *** 86,136 **** { VECTOR_OBJECTREF_PTR vector = vectorPtr; ! CommandBehavior *cb = new CommandBehavior(); ! ! for(unsigned int i = 0; i < (*vector).size(); i++) { ! ObjectRef elementPtr = (*vector)[i]; ! if(!elementPtr->isNil()) { ! COMPOSITE_TYPE_PTR element = elementPtr; ! ! ObjectRef namePtr = element->get("BEHAVIOR_NAME"); ! ObjectRef activationPtr = element->get("BEHAVIOR_ACTIVATION"); ! ObjectRef exploitationPtr = element->get("BEHAVIOR_EXPLOITATION"); ! ObjectRef parametersPtr = element->get("BEHAVIOR_PARAMETERS"); ! ObjectRef resultsPtr = element->get("BEHAVIOR_RESULTS"); ! if(!namePtr->isNil()) { ! RCPtr<String> name = namePtr; ! ! if(!activationPtr->isNil()) ! { ! RCPtr<Bool> activation = activationPtr; ! cb->setActivation(*name, *activation); ! } ! ! if(!exploitationPtr->isNil()) ! { ! RCPtr<Bool> exploitation = exploitationPtr; ! cb->setExploitation(*name, *exploitation); ! } ! if(!parametersPtr->isNil()) ! { ! RCPtr<String> parameters = parametersPtr; ! cb->setParameters(*name, *parameters); ! } ! if(!resultsPtr->isNil()) { ! RCPtr<String> results = resultsPtr; ! cb->setResults(*name, *results); } } } } - out[count] = ObjectRef(new MarieObject(cb)); } else --- 86,143 ---- { VECTOR_OBJECTREF_PTR vector = vectorPtr; ! if (!vector->vempty()) { ! CommandBehavior *cb = new CommandBehavior(); ! for(unsigned int i = 0; i < (*vector).size(); i++) { ! ObjectRef elementPtr = (*vector)[i]; ! if(!elementPtr->isNil()) { ! COMPOSITE_TYPE_PTR element = elementPtr; ! ObjectRef namePtr = element->get("BEHAVIOR_NAME"); ! ObjectRef activationPtr = element->get("BEHAVIOR_ACTIVATION"); ! ObjectRef exploitationPtr = element->get("BEHAVIOR_EXPLOITATION"); ! ObjectRef parametersPtr = element->get("BEHAVIOR_PARAMETERS"); ! ObjectRef resultsPtr = element->get("BEHAVIOR_RESULTS"); ! if(!namePtr->isNil()) { ! RCPtr<String> name = namePtr; ! ! if(!activationPtr->isNil()) ! { ! RCPtr<Bool> activation = activationPtr; ! cb->setActivation(*name, *activation); ! } ! ! if(!exploitationPtr->isNil()) ! { ! RCPtr<Bool> exploitation = exploitationPtr; ! cb->setExploitation(*name, *exploitation); ! } ! ! if(!parametersPtr->isNil()) ! { ! RCPtr<String> parameters = parametersPtr; ! cb->setParameters(*name, *parameters); ! } ! ! if(!resultsPtr->isNil()) ! { ! RCPtr<String> results = resultsPtr; ! cb->setResults(*name, *results); ! } } } } + out[count] = ObjectRef(new MarieObject(cb)); + } + else + { + out[count] = ObjectRef(new MarieObject(new DataNull())); } } else |