diff --git a/src/osg/Geometry.cpp b/src/osg/Geometry.cpp index 29bc91a15..6306525dd 100644 --- a/src/osg/Geometry.cpp +++ b/src/osg/Geometry.cpp @@ -359,8 +359,8 @@ class DrawFogCoord : public osg::ConstValueVisitor }; Geometry::ArrayData::ArrayData(const ArrayData& data,const CopyOp& copyop): - array(data.array.valid()?dynamic_cast(data.array->clone(copyop)):0), - indices(data.indices.valid()?dynamic_cast(data.indices->clone(copyop)):0), + array(copyop(data.array.get())), + indices(dynamic_cast(copyop(data.indices.get()))), binding(data.binding), normalize(data.normalize), offset(data.offset) @@ -368,8 +368,8 @@ Geometry::ArrayData::ArrayData(const ArrayData& data,const CopyOp& copyop): } Geometry::Vec3ArrayData::Vec3ArrayData(const Vec3ArrayData& data,const CopyOp& copyop): - array(data.array.valid()?dynamic_cast(data.array->clone(copyop)):0), - indices(data.indices.valid()?dynamic_cast(data.indices->clone(copyop)):0), + array(dynamic_cast(copyop(data.array.get()))), + indices(dynamic_cast(copyop(data.indices.get()))), binding(data.binding), normalize(data.normalize), offset(data.offset) @@ -698,7 +698,7 @@ bool Geometry::computeFastPathsUsed() // // Set up tex coords if required. // - for(unsigned int unit=0;unit!=_texCoordList.size();++unit) + for(unsigned int unit=0;unit<_texCoordList.size();++unit) { const ArrayData& texcoordData = _texCoordList[unit]; if (texcoordData.array.valid() && texcoordData.array->getNumElements()>0)