Skip to content

Commit 2adecff

Browse files
Remove Object::script
1 parent ef5cd99 commit 2adecff

File tree

4 files changed

+16
-44
lines changed

4 files changed

+16
-44
lines changed

core/object/object.cpp

Lines changed: 14 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1019,18 +1019,8 @@ String Object::to_string() {
10191019
return "<" + get_class() + "#" + itos(get_instance_id()) + ">";
10201020
}
10211021

1022-
void Object::set_script_and_instance(const Variant &p_script, ScriptInstance *p_instance) {
1023-
//this function is not meant to be used in any of these ways
1024-
ERR_FAIL_COND(p_script.is_null());
1025-
ERR_FAIL_NULL(p_instance);
1026-
ERR_FAIL_COND(script_instance != nullptr || !script.is_null());
1027-
1028-
script = p_script;
1029-
script_instance = p_instance;
1030-
}
1031-
10321022
void Object::set_script(const Variant &p_script) {
1033-
if (script == p_script) {
1023+
if (get_script() == p_script) {
10341024
return;
10351025
}
10361026

@@ -1040,8 +1030,6 @@ void Object::set_script(const Variant &p_script) {
10401030
ERR_FAIL_COND_MSG(s->is_abstract(), vformat("Cannot set object script. Script '%s' should not be abstract.", s->get_path()));
10411031
}
10421032

1043-
script = p_script;
1044-
10451033
if (script_instance) {
10461034
memdelete(script_instance);
10471035
script_instance = nullptr;
@@ -1071,16 +1059,10 @@ void Object::set_script_instance(ScriptInstance *p_instance) {
10711059
}
10721060

10731061
script_instance = p_instance;
1074-
1075-
if (p_instance) {
1076-
script = p_instance->get_script();
1077-
} else {
1078-
script = Variant();
1079-
}
10801062
}
10811063

10821064
Variant Object::get_script() const {
1083-
return script;
1065+
return script_instance ? Variant(script_instance->get_script()) : Variant();
10841066
}
10851067

10861068
bool Object::has_meta(const StringName &p_name) const {
@@ -1263,7 +1245,7 @@ Error Object::emit_signalp(const StringName &p_name, const Variant **p_args, int
12631245
#ifdef DEBUG_ENABLED
12641246
bool signal_is_valid = ClassDB::has_signal(get_class_name(), p_name);
12651247
//check in script
1266-
ERR_FAIL_COND_V_MSG(!signal_is_valid && !script.is_null() && !Ref<Script>(script)->has_script_signal(p_name), ERR_UNAVAILABLE, vformat("Can't emit non-existing signal \"%s\".", p_name));
1248+
ERR_FAIL_COND_V_MSG(!signal_is_valid && script_instance && !script_instance->get_script()->has_script_signal(p_name), ERR_UNAVAILABLE, vformat("Can't emit non-existing signal \"%s\".", p_name));
12671249
#endif
12681250
//not connected? just return
12691251
return ERR_UNAVAILABLE;
@@ -1333,7 +1315,7 @@ Error Object::emit_signalp(const StringName &p_name, const Variant **p_args, int
13331315

13341316
if (ce.error != Callable::CallError::CALL_OK) {
13351317
#ifdef DEBUG_ENABLED
1336-
if (flags & CONNECT_PERSIST && Engine::get_singleton()->is_editor_hint() && (script.is_null() || !Ref<Script>(script)->is_tool())) {
1318+
if (flags & CONNECT_PERSIST && Engine::get_singleton()->is_editor_hint() && (!script_instance || !script_instance->get_script()->is_tool())) {
13371319
continue;
13381320
}
13391321
#endif
@@ -1437,11 +1419,8 @@ TypedArray<Dictionary> Object::_get_incoming_connections() const {
14371419
}
14381420

14391421
bool Object::has_signal(const StringName &p_name) const {
1440-
if (!script.is_null()) {
1441-
Ref<Script> scr = script;
1442-
if (scr.is_valid() && scr->has_script_signal(p_name)) {
1443-
return true;
1444-
}
1422+
if (script_instance && script_instance->get_script()->has_script_signal(p_name)) {
1423+
return true;
14451424
}
14461425

14471426
if (ClassDB::has_signal(get_class_name(), p_name)) {
@@ -1458,11 +1437,8 @@ bool Object::has_signal(const StringName &p_name) const {
14581437
void Object::get_signal_list(List<MethodInfo> *p_signals) const {
14591438
OBJ_SIGNAL_LOCK
14601439

1461-
if (!script.is_null()) {
1462-
Ref<Script> scr = script;
1463-
if (scr.is_valid()) {
1464-
scr->get_script_signal_list(p_signals);
1465-
}
1440+
if (script_instance) {
1441+
script_instance->get_script()->get_script_signal_list(p_signals);
14661442
}
14671443

14681444
ClassDB::get_signal_list(get_class_name(), p_signals);
@@ -1543,14 +1519,14 @@ Error Object::connect(const StringName &p_signal, const Callable &p_callable, ui
15431519
if (!s) {
15441520
bool signal_is_valid = ClassDB::has_signal(get_class_name(), p_signal);
15451521
//check in script
1546-
if (!signal_is_valid && !script.is_null()) {
1547-
if (Ref<Script>(script)->has_script_signal(p_signal)) {
1522+
if (!signal_is_valid && script_instance) {
1523+
if (script_instance->get_script()->has_script_signal(p_signal)) {
15481524
signal_is_valid = true;
15491525
}
15501526
#ifdef TOOLS_ENABLED
15511527
else {
15521528
//allow connecting signals anyway if script is invalid, see issue #17070
1553-
if (!Ref<Script>(script)->is_valid()) {
1529+
if (!script_instance->get_script()->is_valid()) {
15541530
signal_is_valid = true;
15551531
}
15561532
}
@@ -1606,7 +1582,7 @@ bool Object::is_connected(const StringName &p_signal, const Callable &p_callable
16061582
return false;
16071583
}
16081584

1609-
if (!script.is_null() && Ref<Script>(script)->has_script_signal(p_signal)) {
1585+
if (script_instance && script_instance->get_script()->has_script_signal(p_signal)) {
16101586
return false;
16111587
}
16121588

@@ -1626,7 +1602,7 @@ bool Object::has_connections(const StringName &p_signal) const {
16261602
return false;
16271603
}
16281604

1629-
if (!script.is_null() && Ref<Script>(script)->has_script_signal(p_signal)) {
1605+
if (script_instance && script_instance->get_script()->has_script_signal(p_signal)) {
16301606
return false;
16311607
}
16321608

@@ -1647,7 +1623,7 @@ bool Object::_disconnect(const StringName &p_signal, const Callable &p_callable,
16471623
SignalData *s = signal_map.getptr(p_signal);
16481624
if (!s) {
16491625
bool signal_is_valid = ClassDB::has_signal(get_class_name(), p_signal) ||
1650-
(!script.is_null() && Ref<Script>(script)->has_script_signal(p_signal));
1626+
(script_instance && script_instance->get_script()->has_script_signal(p_signal));
16511627
ERR_FAIL_COND_V_MSG(signal_is_valid, false, vformat("Attempt to disconnect a nonexistent connection from '%s'. Signal: '%s', callable: '%s'.", to_string(), p_signal, p_callable));
16521628
}
16531629
ERR_FAIL_NULL_V_MSG(s, false, vformat("Disconnecting nonexistent signal '%s' in '%s'.", p_signal, to_string()));

core/object/object.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,6 @@ class Object {
668668
HashSet<String> editor_section_folding;
669669
#endif
670670
ScriptInstance *script_instance = nullptr;
671-
Variant script; // Reference does not exist yet, store it in a Variant.
672671
HashMap<StringName, Variant> metadata;
673672
HashMap<StringName, Variant *> metadata_properties;
674673
mutable const StringName *_class_name_ptr = nullptr;
@@ -951,9 +950,6 @@ class Object {
951950
void set_script_instance(ScriptInstance *p_instance);
952951
_FORCE_INLINE_ ScriptInstance *get_script_instance() const { return script_instance; }
953952

954-
// Some script languages can't control instance creation, so this function eases the process.
955-
void set_script_and_instance(const Variant &p_script, ScriptInstance *p_instance);
956-
957953
void add_user_signal(const MethodInfo &p_signal);
958954

959955
template <typename... VarArgs>

modules/mono/csharp_script.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1432,7 +1432,7 @@ void CSharpLanguage::tie_user_managed_to_unmanaged(GCHandleIntPtr p_gchandle_int
14321432

14331433
CSharpInstance *csharp_instance = CSharpInstance::create_for_managed_type(p_unmanaged, script.ptr(), gchandle);
14341434

1435-
p_unmanaged->set_script_and_instance(script, csharp_instance);
1435+
p_unmanaged->set_script_instance(csharp_instance);
14361436

14371437
csharp_instance->connect_event_signals();
14381438
}

modules/objectdb_profiler/editor/snapshot_data.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ SnapshotDataObject::SnapshotDataObject(SceneDebuggerObject &p_obj, GameStateSnap
7878
if (scr.is_valid()) {
7979
ScriptInstance *scr_instance = scr->placeholder_instance_create(this);
8080
if (scr_instance) {
81-
set_script_and_instance(pvalue, scr_instance);
81+
set_script_instance(scr_instance);
8282
}
8383
}
8484
}

0 commit comments

Comments
 (0)