From 26e68926f7067cf62485ef33e13fcac4d9a7857d Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 25 Feb 2010 17:18:46 +0000 Subject: [PATCH] From J.P. Delport: "by some strange circumstance I've stumbled across the following problem: I create a compositeviewer with two views that share a context. One view is deleted. Texture::TextureObjectSet::discardAllTextureObjects is called, but this does not reset _tail. Now the texture object is again created and addToBack is called from Texture::TextureObjectSet::takeOrGenerate. In addToBack (line 612) _tail is now not 0 (although the list should be empty) and a loop is created from the texture object to itself. Then when the second view is deleted, Texture::TextureObjectSet::deleteAllTextureObjects loops forever. Setting _tail to 0 fixes it for me (see attached)." --- src/osg/Texture.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/osg/Texture.cpp b/src/osg/Texture.cpp index 6ce81ea2f..e9499133a 100644 --- a/src/osg/Texture.cpp +++ b/src/osg/Texture.cpp @@ -196,7 +196,7 @@ bool Texture::TextureObjectSet::checkConsistency() const { if (_tail != to) { - osg::notify(osg::NOTICE)<<"Texture::TextureObjectSet::checkConsistency() : Error _trail != to"<