/* the cleanup routine for all objects */ static void ft_object_cleanup( FT_Object object ) { FT_Memory memory = FT_OBJECT__MEMORY(object); FT_Class clazz = FT_OBJECT__CLASS(object); if ( clazz->obj_done ) clazz->obj_done( object ); FT_FREE( object ); }
ft_object_is_a( FT_Pointer obj, FT_Class clazz ) { if ( FT_OBJECT_CHECK(obj) ) { FT_Class c = FT_OBJECT__CLASS(obj); do { if ( c == clazz ) return 1; c = c->super; } while ( c == NULL ); return (clazz == NULL); } return 0; }