fix: fix module's function serialization

Refs: #23
This commit is contained in:
2026-07-04 13:20:08 +02:00
parent 484e16963f
commit f5ebc767ab
2 changed files with 27 additions and 2 deletions
+8 -2
View File
@@ -12,8 +12,14 @@ std::ostream& mod::serialize(std::ostream& os) const {
detail::serialize(os, std::uint32_t(0)); // version
detail::serialize(os, function_id(m_functionMap.size()));
for (auto* pair : m_functions) {
function_h func = { pair };
for (function_id id = 0; id < m_functions.cend() - m_functions.cbegin(); ++id) {
if (!m_functions.contains(id)) {
detail::serialize(os, "");
detail::serialize(os, std::uint8_t(0xFF)); // null function
continue;
}
function_h func = m_functions.at(id);
bool isPublic = m_publicFunctions.find(func->name()) != m_publicFunctions.end();
detail::serialize(os, isPublic ? func->name() : ""); // private functions have empty names
detail::serialize(os, std::uint8_t(func->type()));