summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib.c8
-rw-r--r--lib.h1
-rw-r--r--sysif.c2
3 files changed, 9 insertions, 2 deletions
diff --git a/lib.c b/lib.c
index 03915d08..6939f817 100644
--- a/lib.c
+++ b/lib.c
@@ -7389,12 +7389,18 @@ val cobj_equal_handle_op(val left, val right)
return (left->co.handle == right->co.handle) ? t : nil;
}
+cnum cobj_handle_hash_op(val obj, int *count)
+{
+ mem_t *handle = obj->co.handle;
+ return cobj_eq_hash_op(coerce(val, handle), count);
+}
+
static struct cobj_ops cptr_ops = {
cobj_equal_handle_op,
cobj_print_op,
cobj_destroy_stub_op,
cobj_mark_op,
- cobj_eq_hash_op
+ cobj_handle_hash_op
};
val cptr(mem_t *ptr)
diff --git a/lib.h b/lib.h
index f1274bf1..301e46c4 100644
--- a/lib.h
+++ b/lib.h
@@ -258,6 +258,7 @@ void cobj_destroy_stub_op(val);
void cobj_destroy_free_op(val);
void cobj_mark_op(val);
cnum cobj_eq_hash_op(val, int *);
+cnum cobj_handle_hash_op(val, int *);
struct env {
obj_common;
diff --git a/sysif.c b/sysif.c
index e4d6de88..78dcda6c 100644
--- a/sysif.c
+++ b/sysif.c
@@ -1470,7 +1470,7 @@ static struct cobj_ops cptr_dl_ops = {
cobj_print_op,
cptr_dl_destroy_op,
cobj_mark_op,
- cobj_eq_hash_op
+ cobj_handle_hash_op
};
static val dlopen_wrap(val name, val flags)