Fix crash when edit remote object instance after debugger stoped
This commit is contained in:
parent
1473e23df8
commit
29cd034e23
|
@ -43,12 +43,14 @@
|
||||||
#include "os/input.h"
|
#include "os/input.h"
|
||||||
#include "os/keyboard.h"
|
#include "os/keyboard.h"
|
||||||
#include "pair.h"
|
#include "pair.h"
|
||||||
|
#include "plugins/script_editor_plugin.h"
|
||||||
#include "print_string.h"
|
#include "print_string.h"
|
||||||
#include "scene/gui/label.h"
|
#include "scene/gui/label.h"
|
||||||
#include "scene/main/viewport.h"
|
#include "scene/main/viewport.h"
|
||||||
#include "scene/resources/font.h"
|
#include "scene/resources/font.h"
|
||||||
#include "scene/resources/packed_scene.h"
|
#include "scene/resources/packed_scene.h"
|
||||||
#include "scene/scene_string_names.h"
|
#include "scene/scene_string_names.h"
|
||||||
|
#include "script_editor_debugger.h"
|
||||||
|
|
||||||
void CustomPropertyEditor::_notification(int p_what) {
|
void CustomPropertyEditor::_notification(int p_what) {
|
||||||
|
|
||||||
|
@ -3619,8 +3621,14 @@ void PropertyEditor::edit(Object *p_object) {
|
||||||
obj->remove_change_receptor(this);
|
obj->remove_change_receptor(this);
|
||||||
|
|
||||||
if (obj->is_type("ScriptEditorDebuggerInspectedObject")) {
|
if (obj->is_type("ScriptEditorDebuggerInspectedObject")) {
|
||||||
|
ScriptEditorDebugger *sed = ScriptEditor::get_singleton()->get_debugger();
|
||||||
|
if (sed->is_connected()) {
|
||||||
set_enable_capitalize_paths(false);
|
set_enable_capitalize_paths(false);
|
||||||
emit_signal("object_id_selected", obj->call("get_remote_object_id"));
|
emit_signal("object_id_selected", obj->call("get_remote_object_id"));
|
||||||
|
} else {
|
||||||
|
obj = NULL;
|
||||||
|
p_object = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -250,6 +250,10 @@ void ScriptEditorDebugger::debug_continue() {
|
||||||
ppeer->put_var(msg);
|
ppeer->put_var(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ScriptEditorDebugger::is_connected() const {
|
||||||
|
return connection.is_valid() && connection->is_connected();
|
||||||
|
}
|
||||||
|
|
||||||
void ScriptEditorDebugger::_scene_tree_folded(Object *obj) {
|
void ScriptEditorDebugger::_scene_tree_folded(Object *obj) {
|
||||||
|
|
||||||
if (updating_scene_tree) {
|
if (updating_scene_tree) {
|
||||||
|
|
|
@ -185,6 +185,8 @@ public:
|
||||||
void debug_break();
|
void debug_break();
|
||||||
void debug_continue();
|
void debug_continue();
|
||||||
|
|
||||||
|
bool is_connected() const;
|
||||||
|
|
||||||
String get_var_value(const String &p_var) const;
|
String get_var_value(const String &p_var) const;
|
||||||
|
|
||||||
void set_live_debugging(bool p_enable);
|
void set_live_debugging(bool p_enable);
|
||||||
|
|
Loading…
Reference in a new issue