Skip to content

Commit d9acf35

Browse files
committed
fix: Get parent type info properly from refactors
`parentType` was replaced in TypeInfo with `parentTypeInfo`. Replace requests for `parentType` with the correct field name.
1 parent 619032e commit d9acf35

2 files changed

Lines changed: 12 additions & 7 deletions

File tree

src/cpp/script/dart_script.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -476,9 +476,14 @@ void DartScript::refresh_type(bool force) {
476476
_type_info = Dart_NewPersistentHandle(type_info);
477477

478478
// Find the base type
479-
Dart_Handle base_type = Dart_GetField(type_info, Dart_NewStringFromCString("parentType"));
480-
if (Dart_IsNull(base_type)) {
481-
_base_script = language->find_script_for_type(dart_type);
479+
DART_CHECK(base_type_info, Dart_GetField(type_info, Dart_NewStringFromCString("parentTypeInfo")),
480+
"Failed to get parentTypeInfo for type");
481+
if (!Dart_IsNull(base_type_info)) {
482+
DART_CHECK(base_type, Dart_GetField(base_type_info, Dart_NewStringFromCString("type")),
483+
"Failed to get type from parentTypeInfo");
484+
if (!Dart_IsNull(base_type)) {
485+
_base_script = language->find_script_for_type(base_type);
486+
}
482487
}
483488

484489
// Update Properties

src/cpp/script/dart_script_language.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -303,18 +303,18 @@ godot::Dictionary DartScriptLanguage::_get_global_class_name(const godot::String
303303
godot::StringName gd_native_type_name = *(godot::StringName *)get_object_address(native_type_name);
304304

305305
// More overly used strings
306-
Dart_Handle parent_type_str = Dart_NewStringFromCString("parentType");
306+
Dart_Handle parent_type_info_str = Dart_NewStringFromCString("parentTypeInfo");
307307

308308
Dart_Handle current_type_info = type_info;
309309

310310
bool found_base_type = false;
311311

312312
while (!found_base_type) {
313-
DART_CHECK(parent_type, Dart_GetField(current_type_info, parent_type_str), "Failed getting parent type");
314-
if (Dart_IsNull(parent_type)) {
313+
DART_CHECK(parent_type_info, Dart_GetField(current_type_info, parent_type_info_str),
314+
"Failed getting parent type info");
315+
if (Dart_IsNull(parent_type_info)) {
315316
break;
316317
}
317-
DART_CHECK(parent_type_info, Dart_GetField(parent_type, s_type_info_str), "Failed to get parent type info!");
318318
DART_CHECK(value, Dart_GetField(parent_type_info, is_global_class_str),
319319
"Failed to get isGlobalClass from typeInfo!");
320320
bool is_global = false;

0 commit comments

Comments
 (0)