From 046b6a4bfdd37ba25687d845a03761ab6018df8f Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Wed, 12 May 2010 14:34:18 +0000 Subject: [PATCH] Removed inappropriate code which was causing a memory leak. This code was clearly a copy and paste error. The mistake was spotted by Robin Bourianes, with code changes made by Robert Osfield. --- src/osgTerrain/GeometryTechnique.cpp | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/osgTerrain/GeometryTechnique.cpp b/src/osgTerrain/GeometryTechnique.cpp index 211a8cb99..55fcb70f4 100644 --- a/src/osgTerrain/GeometryTechnique.cpp +++ b/src/osgTerrain/GeometryTechnique.cpp @@ -1069,7 +1069,7 @@ void GeometryTechnique::generateGeometry(BufferData& buffer, Locator* masterLoca { itr->second.first->push_back((*itr->second.first)[orig_i]); } - + skirtDrawElements->addElement(orig_i); skirtDrawElements->addElement(new_i); } @@ -1078,18 +1078,18 @@ void GeometryTechnique::generateGeometry(BufferData& buffer, Locator* masterLoca if (skirtDrawElements->getNumIndices()!=0) { geometry->addPrimitiveSet(skirtDrawElements.get()); - skirtDrawElements = smallTile ? + skirtDrawElements = smallTile ? static_cast(new osg::DrawElementsUShort(GL_QUAD_STRIP)) : static_cast(new osg::DrawElementsUInt(GL_QUAD_STRIP)); } - + } } if (skirtDrawElements->getNumIndices()!=0) { geometry->addPrimitiveSet(skirtDrawElements.get()); - skirtDrawElements = smallTile ? + skirtDrawElements = smallTile ? static_cast(new osg::DrawElementsUShort(GL_QUAD_STRIP)) : static_cast(new osg::DrawElementsUInt(GL_QUAD_STRIP)); } @@ -1111,7 +1111,7 @@ void GeometryTechnique::generateGeometry(BufferData& buffer, Locator* masterLoca { itr->second.first->push_back((*itr->second.first)[orig_i]); } - + skirtDrawElements->addElement(orig_i); skirtDrawElements->addElement(new_i); } @@ -1120,11 +1120,11 @@ void GeometryTechnique::generateGeometry(BufferData& buffer, Locator* masterLoca if (skirtDrawElements->getNumIndices()!=0) { geometry->addPrimitiveSet(skirtDrawElements.get()); - skirtDrawElements = smallTile ? + skirtDrawElements = smallTile ? static_cast(new osg::DrawElementsUShort(GL_QUAD_STRIP)) : static_cast(new osg::DrawElementsUInt(GL_QUAD_STRIP)); } - + } } @@ -1153,7 +1153,7 @@ void GeometryTechnique::generateGeometry(BufferData& buffer, Locator* masterLoca { itr->second.first->push_back((*itr->second.first)[orig_i]); } - + skirtDrawElements->addElement(orig_i); skirtDrawElements->addElement(new_i); } @@ -1162,11 +1162,11 @@ void GeometryTechnique::generateGeometry(BufferData& buffer, Locator* masterLoca if (skirtDrawElements->getNumIndices()!=0) { geometry->addPrimitiveSet(skirtDrawElements.get()); - skirtDrawElements = smallTile ? + skirtDrawElements = smallTile ? static_cast(new osg::DrawElementsUShort(GL_QUAD_STRIP)) : static_cast(new osg::DrawElementsUInt(GL_QUAD_STRIP)); } - + } } @@ -1195,7 +1195,7 @@ void GeometryTechnique::generateGeometry(BufferData& buffer, Locator* masterLoca { itr->second.first->push_back((*itr->second.first)[orig_i]); } - + skirtDrawElements->addElement(orig_i); skirtDrawElements->addElement(new_i); } @@ -1206,16 +1206,12 @@ void GeometryTechnique::generateGeometry(BufferData& buffer, Locator* masterLoca geometry->addPrimitiveSet(skirtDrawElements.get()); skirtDrawElements = new osg::DrawElementsUShort(GL_QUAD_STRIP); } - } } if (skirtDrawElements->getNumIndices()!=0) { geometry->addPrimitiveSet(skirtDrawElements.get()); - smallTile ? - static_cast(new osg::DrawElementsUShort(GL_QUAD_STRIP)) : - static_cast(new osg::DrawElementsUInt(GL_QUAD_STRIP)); } }