diff --git a/libpandafile/literal_data_accessor-inl.h b/libpandafile/literal_data_accessor-inl.h index d683f872ca024b1c167621210663e6b873572b34..4ea63d80df8bcedf86d1679b53cdfd3f0de558c8 100644 --- a/libpandafile/literal_data_accessor-inl.h +++ b/libpandafile/literal_data_accessor-inl.h @@ -18,7 +18,6 @@ #include #include "file_items.h" -#include "helpers.h" #include "literal_data_accessor.h" #include "utils/utf.h" @@ -92,10 +91,7 @@ inline void LiteralDataAccessor::EnumerateLiteralVals(File::EntityId id, const C template inline void LiteralDataAccessor::EnumerateLiteralVals(size_t index, const Callback &cb) { - ASSERT(index < literal_num_); - auto l_sp = literal_data_sp_.SubSpan(index * ID_SIZE); - auto id = File::EntityId(static_cast(helpers::Read(&l_sp))); - EnumerateLiteralVals(id, cb); + EnumerateLiteralVals(GetLiteralArrayId(index), cb); } } // namespace panda::panda_file diff --git a/libpandafile/literal_data_accessor.h b/libpandafile/literal_data_accessor.h index 943c6c3cea0f1dd5f4f5a85315f6668987ea8ed7..cd3f8381dd9cb25e9e6eff9e5a77cb32340b6154 100644 --- a/libpandafile/literal_data_accessor.h +++ b/libpandafile/literal_data_accessor.h @@ -18,6 +18,7 @@ #include "field_data_accessor.h" #include "file.h" +#include "helpers.h" #include "utils/span.h" namespace panda::panda_file { @@ -83,6 +84,13 @@ public: return literal_data_id_; } + File::EntityId GetLiteralArrayId(size_t index) const + { + ASSERT(index < literal_num_); + auto l_sp = literal_data_sp_.SubSpan(index * ID_SIZE); + return File::EntityId(static_cast(helpers::Read(&l_sp))); + } + using LiteralValue = std::variant; private: