diff --git a/src/object.c b/src/object.c index 777fd27..0fd82ad 100644 --- a/src/object.c +++ b/src/object.c @@ -119,6 +119,14 @@ cfw_free(void *ptr) free(obj); } +bool +cfw_is(void *ptr, CFWClass *cls) +{ + CFWObject *obj = ptr; + + return (obj->cls == cls); +} + bool cfw_equal(void *ptr1, void *ptr2) { diff --git a/src/object.h b/src/object.h index 5afdc42..d309f29 100644 --- a/src/object.h +++ b/src/object.h @@ -40,6 +40,7 @@ extern void* cfw_new_p(CFWClass*, ...); extern void* cfw_ref(void*); extern void cfw_unref(void*); extern void cfw_free(void*); +extern bool cfw_is(void*, CFWClass*); extern bool cfw_equal(void*, void*); extern uint32_t cfw_hash(void*); extern void* cfw_copy(void*);