summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--lib.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 544d470c..513c644b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2014-02-14 Kaz Kylheku <kaz@kylheku.com>
+ * lib.c (class_check): Bugfix: the function was assuming that
+ the argument is a pointer type object, leading to a crash
+ if given a fixnum integer or string literal.
+
+2014-02-14 Kaz Kylheku <kaz@kylheku.com>
+
* eval.c (eval_init): Register inhash as intrinsic.
* hash.c (inhash): New function.
diff --git a/lib.c b/lib.c
index fbc44315..64dfb7d0 100644
--- a/lib.c
+++ b/lib.c
@@ -183,7 +183,8 @@ val type_check3(val obj, int t1, int t2, int t3)
val class_check(val cobj, val class_sym)
{
- type_assert (cobj && cobj->t.type == COBJ && cobj->co.cls == class_sym,
+ type_assert (is_ptr(cobj) && cobj->t.type == COBJ &&
+ cobj->co.cls == class_sym,
(lit("~a is not of type ~a"), cobj, class_sym, nao));
return t;
}