Added explicit initialization of osg::Referenced(true) to osg::Operation subclasses as it uses virtual inhertiance from osg::Referenced.

git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@15025 16af8721-9629-0410-8352-f15c8da7e697
This commit is contained in:
Robert Osfield
2015-07-23 15:46:47 +00:00
parent 435a81a905
commit 0dd625f17e
16 changed files with 21 additions and 4 deletions

View File

@@ -49,6 +49,7 @@ struct OSG_EXPORT GraphicsOperation : public Operation
struct OSG_EXPORT SwapBuffersOperation : public GraphicsOperation
{
SwapBuffersOperation():
osg::Referenced(true),
GraphicsOperation("SwapBuffers",true) {}
virtual void operator () (GraphicsContext* context);
@@ -65,6 +66,7 @@ struct OSG_EXPORT BarrierOperation : public Operation, public OpenThreads::Barri
};
BarrierOperation(int numThreads, PreBlockOp op=NO_OPERATION, bool keep=true):
osg::Referenced(true),
Operation("Barrier", keep),
OpenThreads::Barrier(numThreads),
_preBlockOp(op) {}
@@ -81,6 +83,7 @@ struct OSG_EXPORT BarrierOperation : public Operation, public OpenThreads::Barri
struct OSG_EXPORT ReleaseContext_Block_MakeCurrentOperation : public GraphicsOperation, public RefBlock
{
ReleaseContext_Block_MakeCurrentOperation():
osg::Referenced(true),
GraphicsOperation("ReleaseContext_Block_MakeCurrent", false) {}
virtual void release();

View File

@@ -52,7 +52,6 @@ class Operation : virtual public Referenced
public:
Operation(const std::string& name, bool keep):
osg::Referenced(true),
_name(name),
_keep(keep) {}
@@ -75,14 +74,12 @@ class Operation : virtual public Referenced
/** Do the actual task of this operation.*/
virtual void operator () (Object*) = 0;
protected:
protected:
Operation():
Referenced(true),
_keep(false) {}
Operation(const Operation& op):
Referenced(true),
_name(op._name),
_keep(op._keep) {}