Skip to content

Commit d70ab8c

Browse files
committed
Merge pull request #412 from appleseedhq/IECoreAppleseed
IECoreAppleseed: small improvements
2 parents 37838e6 + 42fdcc2 commit d70ab8c

File tree

2 files changed

+7
-16
lines changed

2 files changed

+7
-16
lines changed

contrib/IECoreAppleseed/include/IECoreAppleseed/private/EditBlockHandler.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ class EditBlockHandler : boost::noncopyable
7373
class RendererController;
7474

7575
renderer::Project &m_project;
76-
RendererController *m_rendererController;
77-
renderer::MasterRenderer *m_renderer;
76+
std::auto_ptr<RendererController> m_rendererController;
77+
std::auto_ptr<renderer::MasterRenderer> m_renderer;
7878
boost::thread m_renderingThread;
7979
int m_editDepth;
8080
std::string m_exactScopeName;

contrib/IECoreAppleseed/src/IECoreAppleseed/EditBlockHandler.cpp

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,6 @@ class IECoreAppleseed::EditBlockHandler::RendererController : public asr::Defaul
5959
m_status = ContinueRendering;
6060
}
6161

62-
virtual void release()
63-
{
64-
delete this;
65-
}
66-
6762
virtual Status get_status() const
6863
{
6964
return m_status;
@@ -81,18 +76,14 @@ class IECoreAppleseed::EditBlockHandler::RendererController : public asr::Defaul
8176

8277
IECoreAppleseed::EditBlockHandler::EditBlockHandler( asr::Project &project )
8378
: m_project( project )
84-
, m_renderer(0)
8579
{
8680
m_editDepth = 0;
87-
m_rendererController = new RendererController();
81+
m_rendererController.reset( new RendererController() );
8882
}
8983

9084
IECoreAppleseed::EditBlockHandler::~EditBlockHandler()
9185
{
9286
stopRendering();
93-
94-
m_rendererController->release();
95-
delete m_renderer;
9687
}
9788

9889
void IECoreAppleseed::EditBlockHandler::renderThreadFunc( EditBlockHandler *self )
@@ -118,9 +109,9 @@ void IECoreAppleseed::EditBlockHandler::startRendering()
118109
asr::Configuration *cfg = m_project.configurations().get_by_name( "interactive" );
119110
const asr::ParamArray &params = cfg->get_parameters();
120111

121-
if( !m_renderer )
112+
if( !m_renderer.get() )
122113
{
123-
m_renderer = new asr::MasterRenderer( m_project, params, m_rendererController );
114+
m_renderer.reset( new asr::MasterRenderer( m_project, params, m_rendererController.get() ) );
124115
}
125116
else
126117
{
@@ -155,7 +146,7 @@ const string & IECoreAppleseed::EditBlockHandler::exactScopeName() const
155146

156147
void IECoreAppleseed::EditBlockHandler::editBegin( const string &editType, const CompoundDataMap &parameters )
157148
{
158-
if( !m_renderer )
149+
if( !m_renderer.get() )
159150
{
160151
msg( Msg::Error, "IECoreAppleseed::RendererImplementation::editBegin", "editBegin called before worldEnd." );
161152
return;
@@ -191,7 +182,7 @@ void IECoreAppleseed::EditBlockHandler::editBegin( const string &editType, const
191182

192183
void IECoreAppleseed::EditBlockHandler::editEnd()
193184
{
194-
if( !m_renderer )
185+
if( !m_renderer.get() )
195186
{
196187
msg( Msg::Error, "IECoreAppleseed::RendererImplementation::editEnd", "editEnd called before worldEnd." );
197188
return;

0 commit comments

Comments
 (0)