diff --git a/runtime/type-builtins.cpp b/runtime/type-builtins.cpp index a5f932f90..85083e9c2 100644 --- a/runtime/type-builtins.cpp +++ b/runtime/type-builtins.cpp @@ -81,9 +81,13 @@ RawObject findBuiltinTypeWithName(Thread* thread, const Object& name) { Runtime* runtime = thread->runtime(); Object layout(&scope, NoneType::object()); Object type_obj(&scope, NoneType::object()); + Tuple layouts(&scope, runtime->layouts()); for (int i = 0; i <= static_cast(LayoutId::kLastBuiltinId); i++) { - layout = runtime->layoutAtSafe(static_cast(i)); - if (layout.isErrorNotFound()) continue; + layout = layouts.at(i); + if (layout == SmallInt::fromWord(0)) { + // Indicates an invalid LayoutId. + continue; + } type_obj = Layout::cast(*layout).describedType(); if (!type_obj.isType()) continue; if (Type::cast(*type_obj).name() == name) {