summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-02-14 16:00:42 -0800
committerKaz Kylheku <kaz@kylheku.com>2014-02-14 16:00:42 -0800
commit06fed2b68e08772c606ee6328d8e661e46c571f8 (patch)
treeb2bc47bcab2cee176e9dfe6e2c7c2f91e7655e1e /lib.c
parentb21d9c695dfb570a459129885063749e6efa561e (diff)
downloadtxr-06fed2b68e08772c606ee6328d8e661e46c571f8.tar.gz
txr-06fed2b68e08772c606ee6328d8e661e46c571f8.tar.bz2
txr-06fed2b68e08772c606ee6328d8e661e46c571f8.zip
* 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.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c3
1 files changed, 2 insertions, 1 deletions
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;
}