From 9d94e95521db4c86f6a4e5ed6e32e7b41602cc2a Mon Sep 17 00:00:00 2001 From: Sinisa Veseli Date: Tue, 30 Apr 2024 13:08:06 -0500 Subject: [PATCH] make sure only one record field has pointer to the master field; fix code indents to 4 spaces --- src/database/pvRecord.cpp | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/database/pvRecord.cpp b/src/database/pvRecord.cpp index 5357fc8..e3b7225 100644 --- a/src/database/pvRecord.cpp +++ b/src/database/pvRecord.cpp @@ -481,27 +481,30 @@ void PVRecordStructure::init() for(size_t i=0; igetField()->getType()==structure) { - PVStructurePtr xxx = static_pointer_cast(pvField); - PVRecordStructurePtr pvRecordStructure( + PVStructurePtr xxx = static_pointer_cast(pvField); + PVRecordStructurePtr pvRecordStructure( new PVRecordStructure(xxx,self,pvRecord)); - pvRecordFields->push_back(pvRecordStructure); - pvRecordStructure->init(); + pvRecordFields->push_back(pvRecordStructure); + pvRecordStructure->init(); } else { - PVRecordFieldPtr pvRecordField( + PVRecordFieldPtr pvRecordField( new PVRecordField(pvField,self,pvRecord)); - pvRecordFields->push_back(pvRecordField); - pvRecordField->init(); - // Master field listeners will be called before - // calling listeners for the first subfield - if (!masterFieldCallbackSet) { - masterFieldCallbackSet = true; - // Find master field - PVRecordStructurePtr p = pvRecordField->parent.lock(); - while (p) { - pvRecordField->master = p; - p = p->parent.lock(); - } - } + pvRecordFields->push_back(pvRecordField); + pvRecordField->init(); + // Master field listeners will be called before + // calling listeners for the first subfield + if (!masterFieldCallbackSet) { + masterFieldCallbackSet = true; + // Find master field + PVRecordStructurePtr p = pvRecordField->parent.lock(); + while (p) { + PVRecordStructurePtr p2 = p->parent.lock(); + if (!p2) { + pvRecordField->master = p; + } + p = p2; + } + } } } }