summaryrefslogtreecommitdiffhomepage
path: root/types.c
diff options
context:
space:
mode:
Diffstat (limited to 'types.c')
-rw-r--r--types.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/types.c b/types.c
index 639d668..33a70b5 100644
--- a/types.c
+++ b/types.c
@@ -121,6 +121,7 @@ ucv_gc_mark(uc_value_t *uv)
uc_upval_tref_t *upval;
uc_object_t *object;
uc_array_t *array;
+ uc_resource_t *resource;
struct lh_entry *entry;
size_t i;
@@ -152,7 +153,6 @@ ucv_gc_mark(uc_value_t *uv)
lh_foreach(object->table, entry)
ucv_gc_mark((uc_value_t *)lh_entry_v(entry));
-
break;
case UC_CLOSURE:
@@ -174,6 +174,14 @@ ucv_gc_mark(uc_value_t *uv)
ucv_gc_mark(upval->value);
break;
+ case UC_RESSOURCE:
+ resource = (uc_resource_t *)uv;
+
+ if (resource->type)
+ ucv_gc_mark(resource->type->proto);
+
+ break;
+
default:
break;
}