From 510af519c370d7b6779c5a24e16bcab9ed12f9a8 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期三, 04 六月 2025 17:59:16 +0800
Subject: [PATCH] 1.修复Slot设置设置指针错误闪退问题;

---
 SourceCode/Bond/Servo/CSlot.cpp |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/SourceCode/Bond/Servo/CSlot.cpp b/SourceCode/Bond/Servo/CSlot.cpp
index 8972986..958d5c6 100644
--- a/SourceCode/Bond/Servo/CSlot.cpp
+++ b/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;
 		}

--
Gitblit v1.9.3