From fd098f5b951eebaa7f9b4d55dbc040b05d4d67db Mon Sep 17 00:00:00 2001 From: Ian Chen Date: Tue, 17 Jan 2023 20:23:38 -0800 Subject: [PATCH] make sure we clean up in destructor Signed-off-by: Ian Chen --- ogre2/src/Ogre2Mesh.cc | 3 ++- src/Mesh_TEST.cc | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ogre2/src/Ogre2Mesh.cc b/ogre2/src/Ogre2Mesh.cc index 840279504..1a0c4a315 100644 --- a/ogre2/src/Ogre2Mesh.cc +++ b/ogre2/src/Ogre2Mesh.cc @@ -63,12 +63,13 @@ Ogre2Mesh::Ogre2Mesh() ////////////////////////////////////////////////// Ogre2Mesh::~Ogre2Mesh() { + this->Destroy(); } ////////////////////////////////////////////////// void Ogre2Mesh::Destroy() { - if (!this->ogreItem) + if (!this->ogreItem || !this->Scene()->IsInitialized()) return; // We need to override BaseMesh::Destroy for ogre2 implementation to control diff --git a/src/Mesh_TEST.cc b/src/Mesh_TEST.cc index 7252ea586..4385782e2 100644 --- a/src/Mesh_TEST.cc +++ b/src/Mesh_TEST.cc @@ -71,7 +71,11 @@ void MeshTest::MeshSubMesh(const std::string &_renderEngine) // create the mesh using mesh descriptor MeshDescriptor descriptor("unit_box"); MeshPtr mesh = scene->CreateMesh(descriptor); - ASSERT_TRUE(mesh!= nullptr); + ASSERT_NE(nullptr, mesh); + + // make sure we can create the mesh again with same descriptor + mesh = scene->CreateMesh(descriptor); + ASSERT_NE(nullptr, mesh); // test mesh API EXPECT_EQ(mesh->SubMeshCount(), 1u);