Track ImageAssets so we can delete them
diff --git a/include/rive/file.hpp b/include/rive/file.hpp
index c7b4017..9d2ea3f 100644
--- a/include/rive/file.hpp
+++ b/include/rive/file.hpp
@@ -42,6 +42,9 @@
/// where the artboards live.
std::unique_ptr<Backboard> m_Backboard;
+ /// We just keep these alive for the life of this File
+ std::vector<std::unique_ptr<FileAsset>> m_FileAssets;
+
/// List of artboards in the file. Each artboard encapsulates a set of
/// Rive components and animations.
std::vector<std::unique_ptr<Artboard>> m_Artboards;
diff --git a/src/file.cpp b/src/file.cpp
index a231f9c..27266a8 100644
--- a/src/file.cpp
+++ b/src/file.cpp
@@ -168,6 +168,10 @@
ab->m_Factory = m_Factory;
m_Artboards.push_back(std::unique_ptr<Artboard>(ab));
} break;
+ case ImageAsset::typeKey: {
+ auto fa = object->as<FileAsset>();
+ m_FileAssets.push_back(std::unique_ptr<FileAsset>(fa));
+ } break;
}
} else {
fprintf(stderr, "Failed to import object of type %d\n", object->coreType());