fix separate modules with objc code

This commit is contained in:
Laytan Laats
2025-01-24 19:23:49 +01:00
parent 3a13c598e2
commit b2aaf90f88
3 changed files with 69 additions and 51 deletions
+10 -2
View File
@@ -1147,14 +1147,22 @@ gb_internal void lb_finalize_objc_names(lbProcedure *p) {
String name = entry.key;
args[0] = lb_const_value(m, t_cstring, exact_value_string(name));
lbValue ptr = lb_emit_runtime_call(p, "objc_lookUpClass", args);
lb_addr_store(p, entry.value, ptr);
lbValue ptr_ = lb_find_value_from_entity(m, entry.value);
lbAddr local_addr = lb_addr(ptr_);
lb_addr_store(p, local_addr, ptr);
}
for (auto const &entry : m->objc_selectors) {
String name = entry.key;
args[0] = lb_const_value(m, t_cstring, exact_value_string(name));
lbValue ptr = lb_emit_runtime_call(p, "sel_registerName", args);
lb_addr_store(p, entry.value, ptr);
lbValue ptr_ = lb_find_value_from_entity(m, entry.value);
lbAddr local_addr = lb_addr(ptr_);
lb_addr_store(p, local_addr, ptr);
}
lb_end_procedure_body(p);