GDScript: Fix test for read-only state of constants

This commit is contained in:
Dmitrii Maganov 2023-01-22 11:07:48 +02:00
parent d1e5903c67
commit abe6d67232
14 changed files with 43 additions and 52 deletions

View file

@ -775,15 +775,9 @@ Variant Array::get_typed_script() const {
return _p->typed.script;
}
void Array::set_read_only(bool p_enable) {
if (p_enable == bool(_p->read_only != nullptr)) {
return;
}
if (p_enable) {
void Array::make_read_only() {
if (_p->read_only == nullptr) {
_p->read_only = memnew(Variant);
} else {
memdelete(_p->read_only);
_p->read_only = nullptr;
}
}

View file

@ -127,7 +127,7 @@ public:
StringName get_typed_class_name() const;
Variant get_typed_script() const;
void set_read_only(bool p_enable);
void make_read_only();
bool is_read_only() const;
Array(const Array &p_base, uint32_t p_type, const StringName &p_class_name, const Variant &p_script);

View file

@ -333,15 +333,9 @@ Dictionary Dictionary::duplicate(bool p_deep) const {
return recursive_duplicate(p_deep, 0);
}
void Dictionary::set_read_only(bool p_enable) {
if (p_enable == bool(_p->read_only != nullptr)) {
return;
}
if (p_enable) {
void Dictionary::make_read_only() {
if (_p->read_only == nullptr) {
_p->read_only = memnew(Variant);
} else {
memdelete(_p->read_only);
_p->read_only = nullptr;
}
}
bool Dictionary::is_read_only() const {

View file

@ -86,7 +86,7 @@ public:
Dictionary duplicate(bool p_deep = false) const;
Dictionary recursive_duplicate(bool p_deep, int recursion_count) const;
void set_read_only(bool p_enable);
void make_read_only();
bool is_read_only() const;
const void *id() const;

View file

@ -2179,6 +2179,8 @@ static void _register_variant_builtin_methods() {
bind_method(Dictionary, values, sarray(), varray());
bind_method(Dictionary, duplicate, sarray("deep"), varray(false));
bind_method(Dictionary, get, sarray("key", "default"), varray(Variant()));
bind_method(Dictionary, make_read_only, sarray(), varray());
bind_method(Dictionary, is_read_only, sarray(), varray());
/* Array */
@ -2226,7 +2228,7 @@ static void _register_variant_builtin_methods() {
bind_method(Array, get_typed_builtin, sarray(), varray());
bind_method(Array, get_typed_class_name, sarray(), varray());
bind_method(Array, get_typed_script, sarray(), varray());
bind_method(Array, set_read_only, sarray("enable"), varray());
bind_method(Array, make_read_only, sarray(), varray());
bind_method(Array, is_read_only, sarray(), varray());
/* Byte Array */