diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-10-26 17:29:50 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-10-26 17:29:50 -0700 |
commit | ebacbd123ab9cd937fdddbfa6a6bbb25645c0f33 (patch) | |
tree | 628d5a63a2ec2e1fbd43226a0a757f4aaf40160c | |
parent | 0563523eb3cdc046d98013c8f6f7b374f7bb4adb (diff) | |
download | txr-ebacbd123ab9cd937fdddbfa6a6bbb25645c0f33.tar.gz txr-ebacbd123ab9cd937fdddbfa6a6bbb25645c0f33.tar.bz2 txr-ebacbd123ab9cd937fdddbfa6a6bbb25645c0f33.zip |
* lib.c (type_check): Function moved to header file inline.
(throw_mismatch): New function.
* lib.h (throw_mismatch): Declared.
(type_mismatch): Declaration turned into inline function.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | lib.c | 6 | ||||
-rw-r--r-- | lib.h | 8 |
3 files changed, 17 insertions, 5 deletions
@@ -1,3 +1,11 @@ +2014-10-26 Kaz Kylheku <kaz@kylheku.com> + + * lib.c (type_check): Function moved to header file inline. + (throw_mismatch): New function. + + * lib.h (throw_mismatch): Declared. + (type_mismatch): Declaration turned into inline function. + 2014-10-25 Kaz Kylheku <kaz@kylheku.com> * hash.c (hash_begin): Use coerce macro instead of raw C cast. @@ -183,11 +183,9 @@ val typeof(val obj) } } -val type_check(val obj, int typecode) +val throw_mismatch(val obj, type_t t) { - if (type(obj) != typecode) - type_mismatch(lit("~s is not of type ~s"), obj, code2type(typecode), nao); - return t; + type_mismatch(lit("~s is not of type ~s"), obj, code2type(t), nao); } val type_check2(val obj, int t1, int t2) @@ -414,7 +414,13 @@ extern alloc_bytes_t gc_bytes; val identity(val obj); val typeof(val obj); -val type_check(val obj, int); +val throw_mismatch(val obj, type_t); +INLINE val type_check(val obj, type_t typecode) +{ + if (type(obj) != typecode) + throw_mismatch(obj, typecode); + return t; +} val type_check2(val obj, int, int); val type_check3(val obj, int, int, int); val class_check(val cobj, val class_sym); |