From bf7d580e29785104406b77e9bbbcc4f2083960b2 Mon Sep 17 00:00:00 2001 From: HolonProduction Date: Fri, 10 Oct 2025 21:55:25 +0200 Subject: [PATCH] Remove raw base pointer from `GDScript` --- modules/gdscript/gdscript.cpp | 59 ++++++++++++-------------- modules/gdscript/gdscript.h | 1 - modules/gdscript/gdscript_compiler.cpp | 14 +++--- 3 files changed, 33 insertions(+), 41 deletions(-) diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp index b85fd8e7476..d8664bb7966 100644 --- a/modules/gdscript/gdscript.cpp +++ b/modules/gdscript/gdscript.cpp @@ -123,7 +123,7 @@ GDScriptFunction *GDScript::_super_constructor(GDScript *p_script) { if (likely(p_script->valid) && p_script->initializer) { return p_script->initializer; } else { - GDScript *base_src = p_script->_base; + GDScript *base_src = p_script->base.ptr(); if (base_src != nullptr) { return _super_constructor(base_src); } else { @@ -133,7 +133,7 @@ GDScriptFunction *GDScript::_super_constructor(GDScript *p_script) { } void GDScript::_super_implicit_constructor(GDScript *p_script, GDScriptInstance *p_instance, Callable::CallError &r_error) { - GDScript *base_src = p_script->_base; + GDScript *base_src = p_script->base.ptr(); if (base_src != nullptr) { _super_implicit_constructor(base_src, p_instance, r_error); if (r_error.error != Callable::CallError::CALL_OK) { @@ -217,8 +217,8 @@ Variant GDScript::_new(const Variant **p_args, int p_argcount, Callable::CallErr Object *owner = nullptr; GDScript *_baseptr = this; - while (_baseptr->_base) { - _baseptr = _baseptr->_base; + while (_baseptr->base.ptr()) { + _baseptr = _baseptr->base.ptr(); } ERR_FAIL_COND_V(_baseptr->native.is_null(), Variant()); @@ -258,11 +258,7 @@ bool GDScript::can_instantiate() const { } Ref