diff --git a/pvDataApp/factory/Compare.cpp b/pvDataApp/factory/Compare.cpp index 8237cc5..d47d533 100644 --- a/pvDataApp/factory/Compare.cpp +++ b/pvDataApp/factory/Compare.cpp @@ -188,26 +188,23 @@ bool compareField(const PVStructure* left, const PVStructure* right) bool compareField(const PVStructureArray* left, const PVStructureArray* right) { - if(left->getLength()!=right->getLength()) + if(*left->getStructureArray()->getStructure() + != *right->getStructureArray()->getStructure()) return false; - StructureConstPtr ls = left->getStructureArray()->getStructure(); + PVStructureArray::const_svector ld=left->view(), rd=right->view(); - if(*ls!=*right->getStructureArray()->getStructure()) + if(ld.size()!=rd.size()) return false; - const PVStructureArray::pointer ld=left->get(), rd=right->get(); + PVStructureArray::const_svector::const_iterator lit, lend, rit; - for(size_t i=0, ilen=left->getLength(); igetPVFields(); - const PVFieldPtrArray& rf = rd[i]->getPVFields(); - - for(size_t k=0, klen=ls->getNumberFields(); kscalar(pvDouble, "alarm,timeStamp"); pvStructure = standardPVField->structureArray(structure,"alarm,timeStamp"); size_t num = 2; - PVStructurePtrArray pvStructures; - pvStructures.reserve(num); + PVStructureArray::svector pvStructures(num); for(size_t i=0; icreatePVStructure(structure)); + pvStructures[i]= + pvDataCreate->createPVStructure(structure); } PVStructureArrayPtr pvStructureArray = pvStructure->getStructureArrayField("value"); - pvStructureArray->put(0, num, pvStructures, 0); + pvStructureArray->replace(pvStructures); std::cout << *pvStructure << std::endl; return 0; diff --git a/testApp/pv/testStandardPVField.cpp b/testApp/pv/testStandardPVField.cpp index 7c19ccd..238ba82 100644 --- a/testApp/pv/testStandardPVField.cpp +++ b/testApp/pv/testStandardPVField.cpp @@ -70,14 +70,13 @@ int main(int, char **) StructureConstPtr structure = standardField->scalar(pvDouble, "alarm,timeStamp"); pvStructure = standardPVField->structureArray(structure,"alarm,timeStamp"); size_t num = 2; - PVStructurePtrArray pvStructures; - pvStructures.reserve(num); + PVStructureArray::svector pvStructures(num); for(size_t i=0; icreatePVStructure(structure)); + pvStructures[i]= + pvDataCreate->createPVStructure(structure); } PVStructureArrayPtr pvStructureArray = pvStructure->getStructureArrayField("value"); - pvStructureArray->put(0, num, pvStructures, 0); + pvStructureArray->replace(pvStructures); builder.clear(); pvStructure->toString(&builder); print("structureArrayTest");