diff --git a/include/osg/Object b/include/osg/Object index 01dd65619..94fd616c7 100644 --- a/include/osg/Object +++ b/include/osg/Object @@ -96,13 +96,13 @@ class OSG_EXPORT Object : public Referenced /** Set the name of object using C++ style string.*/ - inline void setName( const std::string& name ) { _name = name; } + virtual void setName( const std::string& name ) { _name = name; } /** Set the name of object using a C style string.*/ inline void setName( const char* name ) { - if (name) _name = name; - else _name.clear(); + if (name) setName(std::string(name)); + else setName(std::string()); } /** Get the name of object.*/ diff --git a/include/osg/Uniform b/include/osg/Uniform index 0207f7141..1eaa0311e 100644 --- a/include/osg/Uniform +++ b/include/osg/Uniform @@ -241,7 +241,7 @@ class OSG_EXPORT Uniform : public Object Type getType() const { return _type; } /** Set the name of the glUniform, ensuring it is only set once.*/ - void setName( const std::string& name ); + virtual void setName( const std::string& name ); /** Set the length of a uniform, ensuring it is only set once (1==scalar)*/ void setNumElements( unsigned int numElements ); diff --git a/src/osg/Uniform.cpp b/src/osg/Uniform.cpp index 02e9ef1c5..b6b736b29 100644 --- a/src/osg/Uniform.cpp +++ b/src/osg/Uniform.cpp @@ -88,8 +88,8 @@ void Uniform::setName( const std::string& name ) OSG_WARN << "cannot change Uniform name" << std::endl; return; } - _name = name; - _nameID = getNameID(name); + Object::setName(name); + _nameID = getNameID(_name); } void Uniform::setNumElements( unsigned int numElements )