1.在FetchedOutJob时,如果是双玻璃片,即已贴合,则两块一起从列表删除;
2.同上,在StoredJob时,如果是双玻璃片,即已贴合,则两块一起加入列表中;
已修改1个文件
25 ■■■■■ 文件已修改
SourceCode/Bond/Servo/CEquipment.cpp 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEquipment.cpp
@@ -883,6 +883,19 @@
            return -3;
        }
        // 如果此玻璃已经贴合,贴合的玻璃也要从列表中移除
        CGlass* pBuddy = pContext->getBuddy();
        if (pBuddy != nullptr) {
            for (auto iter = m_glassList.begin(); iter != m_glassList.end(); iter++) {
                if ((*iter)->getID().compare(pBuddy->getID()) == 0) {
                    (*iter)->release();
                    m_glassList.erase(iter);
                    break;
                }
            }
        }
        ((CArm*)m_pArm)->tempStore(pContext);
        pContext->release();
        Unlock();
@@ -914,6 +927,18 @@
        pGlass->release();                // tempFetchOut需要调用一次release
        Unlock();
        // 如果此玻璃已经贴合,贴合的玻璃也要从加入到列表中
        CGlass* pBuddy = pGlass->getBuddy();
        if (pBuddy != nullptr) {
            Lock();
            pBuddy->addPath(m_nID);
            pBuddy->addRef();                    // 加入list,addRef
            m_glassList.push_back(pBuddy);
            Unlock();
        }
        if (m_listener.onDataChanged != nullptr) {
            m_listener.onDataChanged(this, 0);
        }