From 8477a3236d9e25df6481c8c4a9f203b7e1af3538 Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Wed, 21 Aug 2019 14:41:46 -0400 Subject: [PATCH] asset: Fix asset cache for CLips and TrackElement with same ID We clearly uniquely identify assets by both their IDs and their extractable type, and we should make sure that you can have a TrackElement and a Clip with the same ID. There is one exception in our implementation which is GESFormatter because we treat their subclasses as 1 type with different IDs. --- ges/ges-asset.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/ges/ges-asset.c b/ges/ges-asset.c index 5cb77fe736..5971b484aa 100644 --- a/ges/ges-asset.c +++ b/ges/ges-asset.c @@ -458,16 +458,14 @@ ges_asset_init (GESAsset * self) /* Internal methods */ -/* Find the type that implemented the GESExtractable interface */ static inline const gchar * _extractable_type_name (GType type) { - while (1) { - if (g_type_is_a (g_type_parent (type), GES_TYPE_EXTRACTABLE)) - type = g_type_parent (type); - else - return g_type_name (type); - } + /* We can use `ges_asset_request (GES_TYPE_FORMATTER);` */ + if (g_type_is_a (type, GES_TYPE_FORMATTER)) + return g_type_name (GES_TYPE_FORMATTER); + + return g_type_name (type); } static void