diff --git a/spa/include/spa/type.h b/spa/include/spa/type.h index aa43d3450..4b3f8d959 100644 --- a/spa/include/spa/type.h +++ b/spa/include/spa/type.h @@ -45,7 +45,7 @@ typedef uint32_t SpaType; static inline bool spa_type_is_a (const char *type, const char *parent) { - return type != NULL && parent != NULL && strstr (type, parent) == type; + return type != NULL && parent != NULL && strncmp (type, parent, strlen (parent)) == 0; } #ifdef __cplusplus diff --git a/spa/tests/test-props.c b/spa/tests/test-props.c index 16199c68c..1f8dde64b 100644 --- a/spa/tests/test-props.c +++ b/spa/tests/test-props.c @@ -270,11 +270,11 @@ main (int argc, char *argv[]) do_static_struct (map); - printf ("%d\n", spa_type_is_a (SPA_TYPE__MediaType, SPA_TYPE_ENUM_BASE)); - printf ("%d\n", spa_type_is_a (SPA_TYPE__MediaSubtype, SPA_TYPE_ENUM_BASE)); - printf ("%d\n", spa_type_is_a (SPA_TYPE__Format, SPA_TYPE_ENUM_BASE)); - printf ("%d\n", spa_type_is_a (SPA_TYPE__Format, SPA_TYPE_POD_BASE)); - printf ("%d\n", spa_type_is_a (SPA_TYPE__Format, SPA_TYPE_POD_OBJECT_BASE)); + printf ("media type is enum %d\n", spa_type_is_a (SPA_TYPE__MediaType, SPA_TYPE_ENUM_BASE)); + printf ("media sybtype is enum %d\n", spa_type_is_a (SPA_TYPE__MediaSubtype, SPA_TYPE_ENUM_BASE)); + printf ("format is enum %d\n", spa_type_is_a (SPA_TYPE__Format, SPA_TYPE_ENUM_BASE)); + printf ("format is pod %d\n", spa_type_is_a (SPA_TYPE__Format, SPA_TYPE_POD_BASE)); + printf ("format is object %d\n", spa_type_is_a (SPA_TYPE__Format, SPA_TYPE_POD_OBJECT_BASE)); return 0; }