LAPTOP-SNT8I5JK\Boounion
2025-06-04 510af519c370d7b6779c5a24e16bcab9ed12f9a8
1.修复Slot设置设置指针错误闪退问题;
已修改3个文件
16 ■■■■ 文件已修改
SourceCode/Bond/Servo/CEquipment.cpp 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CSlot.cpp 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CSlot.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SourceCode/Bond/Servo/CEquipment.cpp
@@ -326,7 +326,7 @@
        else {
            for (int i = 0; i < SLOT_MAX; i++) {
                m_slot[i].serialize(ar);
                if (m_slot[i].getContext() != nullptr) {
                if (m_slot[i].getTempContext() != nullptr) {
                    CGlass* pGlass = theApp.m_model.m_glassPool.allocaGlass();
                    pGlass->serialize(ar);
                    m_slot[i].setContext(pGlass);
SourceCode/Bond/Servo/CSlot.cpp
@@ -11,6 +11,7 @@
        m_bEnable = FALSE;
        m_bLock = FALSE;
        m_pContext = nullptr;
        m_pTempContext = nullptr;
    }
    CSlot::~CSlot()
@@ -98,8 +99,8 @@
    void CSlot::setContext(CContext* pContext)
    {
        if (pContext != nullptr) {
            pContext->release();
        if (m_pContext != nullptr) {
            m_pContext->release();
        }
        m_pContext = pContext;
@@ -111,6 +112,11 @@
    CContext* CSlot::getContext()
    {
        return m_pContext;
    }
    CContext* CSlot::getTempContext()
    {
        return m_pTempContext;
    }
    void CSlot::serialize(CArchive& ar)
@@ -131,7 +137,7 @@
            ar >> m_nNo;
            ar >> i32; m_materialsType = (MaterialsType)i32;
            ReadString(ar, m_strName);
            ar >> i64; m_pContext = (CContext*)i64;
            ar >> i64; m_pTempContext = (CContext*)i64;
            ar >> m_bEnable;
            ar >> m_bLock;
        }
SourceCode/Bond/Servo/CSlot.h
@@ -27,6 +27,7 @@
        void setName(const char* pszName);
        BOOL isEmpty();
        CContext* getContext();
        CContext* getTempContext();
        void setContext(CContext* pContext);
        void serialize(CArchive& ar);
@@ -40,6 +41,7 @@
        MaterialsType m_materialsType;
        std::string m_strName;
        CContext* m_pContext;
        CContext* m_pTempContext;
        BOOL m_bEnable;
        BOOL m_bLock;
    };