diff --git a/feeds/ucentral/ucode/patches/0008-ref_fixes.patch b/feeds/ucentral/ucode/patches/0008-ref_fixes.patch new file mode 100644 index 000000000..9b6758fdb --- /dev/null +++ b/feeds/ucentral/ucode/patches/0008-ref_fixes.patch @@ -0,0 +1,48 @@ +--- a/lib/rtnl.c ++++ b/lib/rtnl.c +@@ -3704,7 +3704,7 @@ uc_nl_listener(uc_vm_t *vm, size_t nargs + break; + } + +- ucv_array_set(listener_registry, i + 1, cb_func); ++ ucv_array_set(listener_registry, i + 1, ucv_get(cb_func)); + l = xalloc(sizeof(*l)); + l->index = i; + if (!uc_nl_fill_cmds(l->cmds, cmds)) { +@@ -3714,7 +3714,7 @@ uc_nl_listener(uc_vm_t *vm, size_t nargs + } + + rv = uc_resource_new(listener_type, l); +- ucv_array_set(listener_registry, i, rv); ++ ucv_array_set(listener_registry, i, ucv_get(rv)); + listener_vm = vm; + + return rv; +@@ -4150,5 +4150,7 @@ void uc_module_init(uc_vm_t *vm, uc_valu + listener_type = uc_type_declare(vm, "rtnl.listener", listener_fns, uc_nl_listener_free); + listener_registry = ucv_array_new(vm); + ++ uc_vm_registry_set(vm, "rtnl.registry", listener_registry); ++ + register_constants(vm, scope); + } +--- a/lib/nl80211.c ++++ b/lib/nl80211.c +@@ -2560,7 +2560,7 @@ uc_nl_listener(uc_vm_t *vm, size_t nargs + break; + } + +- ucv_array_set(listener_registry, i + 1, cb_func); ++ ucv_array_set(listener_registry, i + 1, ucv_get(cb_func)); + l = xalloc(sizeof(*l)); + l->index = i; + if (!uc_nl_fill_cmds(l->cmds, cmds)) { +@@ -2570,7 +2570,7 @@ uc_nl_listener(uc_vm_t *vm, size_t nargs + } + + rv = uc_resource_new(listener_type, l); +- ucv_array_set(listener_registry, i, rv); ++ ucv_array_set(listener_registry, i, ucv_get(rv)); + listener_vm = vm; + + return rv;