소스 검색

Fix crash in PluginScript destructor

ktksgit 5 년 전
부모
커밋
eedf4b27a1
1개의 변경된 파일10개의 추가작업 그리고 4개의 파일을 삭제
  1. 10 4
      modules/gdnative/pluginscript/pluginscript_script.cpp

+ 10 - 4
modules/gdnative/pluginscript/pluginscript_script.cpp

@@ -473,6 +473,8 @@ MultiplayerAPI::RPCMode PluginScript::get_rset_mode(const StringName &p_variable
 
 PluginScript::PluginScript() :
 		_data(NULL),
+		_desc(NULL),
+		_language(NULL),
 		_tool(false),
 		_valid(false),
 		_script_list(this) {
@@ -490,11 +492,15 @@ void PluginScript::init(PluginScriptLanguage *language) {
 }
 
 PluginScript::~PluginScript() {
-	_desc->finish(_data);
+	if (_desc && _data) {
+		_desc->finish(_data);
+	}
 
 #ifdef DEBUG_ENABLED
-	_language->lock();
-	_language->_script_list.remove(&_script_list);
-	_language->unlock();
+	if (_language) {
+		_language->lock();
+		_language->_script_list.remove(&_script_list);
+		_language->unlock();
+	}
 #endif
 }