From 3e0a8c63eb6a6c10934d19320df08cd490a7f2a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Thu, 23 May 2019 15:11:18 +0200 Subject: [PATCH] weak-pointer: return two values: value and whenever it is present We do that to avoid confusion (like with hashtables). --- src/c/alloc_2.d | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/c/alloc_2.d b/src/c/alloc_2.d index 94a77d080..57b151870 100644 --- a/src/c/alloc_2.d +++ b/src/c/alloc_2.d @@ -1478,7 +1478,11 @@ si_weak_pointer_value(cl_object o) FEwrong_type_only_arg(@[ext::weak-pointer-value], o, @[ext::weak-pointer]); value = (cl_object)GC_call_with_alloc_lock((GC_fn_type)ecl_weak_pointer_value, o); - @(return (value? value : ECL_NIL)); + if (value) { + @(return value ECL_T); + } else { + @(return ECL_NIL ECL_NIL); + } } #endif /* GBC_BOEHM */