diff --git a/kernel/include/kernel/ACPI/AML/Node.h b/kernel/include/kernel/ACPI/AML/Node.h index 92d35b18..2f7c091b 100644 --- a/kernel/include/kernel/ACPI/AML/Node.h +++ b/kernel/include/kernel/ACPI/AML/Node.h @@ -72,6 +72,11 @@ namespace Kernel::ACPI::AML struct Buffer { + BAN::StringView as_sv() const + { + return BAN::StringView(reinterpret_cast(bytes), size); + } + uint64_t size; uint32_t ref_count; uint8_t bytes[]; @@ -335,12 +340,7 @@ namespace BAN::Formatter print(putc, "", node.as.integer.value); break; case Kernel::ACPI::AML::Node::Type::String: - print(putc, "", - BAN::StringView( - reinterpret_cast(node.as.str_buf->bytes), - node.as.str_buf->size - ) - ); + print(putc, "", node.as.str_buf->as_sv()); break; case Kernel::ACPI::AML::Node::Type::Package: print(putc, "{}", *node.as.package); diff --git a/kernel/kernel/ACPI/AML/Node.cpp b/kernel/kernel/ACPI/AML/Node.cpp index fcdae501..355bd614 100644 --- a/kernel/kernel/ACPI/AML/Node.cpp +++ b/kernel/kernel/ACPI/AML/Node.cpp @@ -1507,10 +1507,7 @@ namespace Kernel::ACPI::AML return {}; }; - auto source_sv = BAN::StringView( - reinterpret_cast(source.as.str_buf->bytes), - source.as.str_buf->size - ); + auto source_sv = source.as.str_buf->as_sv(); while (!source_sv.empty() && !isdigit(source_sv[0]) && source_sv[0] != '-' && source_sv[0] != '+') source_sv = source_sv.substring(1);