Skip to content

Commit 114111c

Browse files
committed
refactor(w3dview): migrate property sheets to RefCountPtr<T>
Replace MEMBER_ADD/MEMBER_RELEASE macros with RefCountPtr<T> smart pointers. - SpherePropertySheet: m_RenderObj now RefCountPtr<SphereRenderObjClass> - RingPropertySheet: m_RenderObj now RefCountPtr<RingRenderObjClass> - EmitterPropertySheet: local emitter variables use REF_PTR_RELEASE - EmitterInstanceList: use REF_PTR_RELEASE for vector cleanup
1 parent 059d534 commit 114111c

File tree

6 files changed

+26
-30
lines changed

6 files changed

+26
-30
lines changed

Core/Tools/W3DView/EmitterInstanceList.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
#include "StdAfx.h"
3535
#include "EmitterInstanceList.h"
36-
#include "Utils.h"
36+
#include "refcount.h"
3737

3838
/////////////////////////////////////////////////////////////////////
3939
//
@@ -59,7 +59,7 @@ EmitterInstanceListClass::Free_List (void)
5959
// Release our hold on each of the emitter pointers
6060
//
6161
for (int index = 0; index < m_List.Count (); index ++) {
62-
MEMBER_RELEASE (m_List[index]);
62+
REF_PTR_RELEASE (m_List[index]);
6363
}
6464

6565
m_List.Delete_All ();
@@ -93,7 +93,7 @@ EmitterInstanceListClass::Add_Emitter (ParticleEmitterClass *emitter)
9393
//
9494
// Add this emitter to the list and put a hold on its reference
9595
//
96-
SAFE_ADD_REF (emitter);
96+
if (emitter) emitter->Add_Ref();
9797
m_List.Add (emitter);
9898
}
9999

Core/Tools/W3DView/EmitterPropertySheet.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ EmitterPropertySheetClass::Create_New_Emitter (void)
501501
// Display the new emitter
502502
//
503503
::GetCurrentDocument ()->Display_Emitter (emitter);
504-
MEMBER_RELEASE (emitter);
504+
REF_PTR_RELEASE (emitter);
505505

506506
/*SAFE_DELETE_ARRAY (color.Values);
507507
SAFE_DELETE_ARRAY (color.KeyTimes);

Core/Tools/W3DView/RingPropertySheet.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,9 @@ RingPropertySheetClass::RingPropertySheetClass
4848
CWnd * pParentWnd,
4949
UINT iSelectPage
5050
)
51-
: m_RenderObj (NULL),
52-
CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
51+
: CPropertySheet(nIDCaption, pParentWnd, iSelectPage),
52+
m_RenderObj (RefCountPtr<RingRenderObjClass>::Create_AddRef(ring))
5353
{
54-
MEMBER_ADD (m_RenderObj, ring);
5554
Initialize ();
5655
return ;
5756
}
@@ -69,10 +68,9 @@ RingPropertySheetClass::RingPropertySheetClass
6968
CWnd * pParentWnd,
7069
UINT iSelectPage
7170
)
72-
: m_RenderObj (NULL),
73-
CPropertySheet(pszCaption, pParentWnd, iSelectPage)
71+
: CPropertySheet(pszCaption, pParentWnd, iSelectPage),
72+
m_RenderObj (RefCountPtr<RingRenderObjClass>::Create_AddRef(ring))
7473
{
75-
MEMBER_ADD (m_RenderObj, ring);
7674
Initialize ();
7775
return ;
7876
}
@@ -85,7 +83,6 @@ RingPropertySheetClass::RingPropertySheetClass
8583
/////////////////////////////////////////////////////////////////////////////
8684
RingPropertySheetClass::~RingPropertySheetClass (void)
8785
{
88-
MEMBER_RELEASE (m_RenderObj);
8986
return ;
9087
}
9188

@@ -183,7 +180,7 @@ RingPropertySheetClass::Add_Object_To_Viewer (void)
183180
//
184181
// Create a new prototype for this object
185182
//
186-
RingPrototypeClass *prototype = new RingPrototypeClass (m_RenderObj);
183+
RingPrototypeClass *prototype = new RingPrototypeClass (m_RenderObj.Peek());
187184

188185
//
189186
// Update the asset manager with the new prototype
@@ -204,14 +201,14 @@ RingPropertySheetClass::Add_Object_To_Viewer (void)
204201
//
205202
doc->Reload_Displayed_Object ();
206203
m_LastSavedName = m_RenderObj->Get_Name ();
207-
MEMBER_ADD (m_RenderObj, (RingRenderObjClass *)doc->GetDisplayedObject ());
204+
m_RenderObj = RefCountPtr<RingRenderObjClass>::Create_AddRef((RingRenderObjClass *)doc->GetDisplayedObject ());
208205

209206
//
210207
// Pass the object along to the pages
211208
//
212-
m_GeneralPage.Set_Ring (m_RenderObj);
213-
m_ColorPage.Set_Ring (m_RenderObj);
214-
m_ScalePage.Set_Ring (m_RenderObj);
209+
m_GeneralPage.Set_Ring (m_RenderObj.Peek());
210+
m_ColorPage.Set_Ring (m_RenderObj.Peek());
211+
m_ScalePage.Set_Ring (m_RenderObj.Peek());
215212
}
216213

217214
return ;

Core/Tools/W3DView/RingPropertySheet.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#include "RingColorPropPage.h"
4040
#include "RingGeneralPropPage.h"
4141
#include "RingSizePropPage.h"
42+
#include "ref_ptr.h"
4243

4344

4445
// Forward declarations
@@ -109,7 +110,7 @@ class RingPropertySheetClass : public CPropertySheet
109110
RingGeneralPropPageClass m_GeneralPage;
110111
RingColorPropPageClass m_ColorPage;
111112
RingSizePropPageClass m_ScalePage;
112-
RingRenderObjClass * m_RenderObj;
113+
RefCountPtr<RingRenderObjClass> m_RenderObj;
113114
CString m_LastSavedName;
114115
};
115116

Core/Tools/W3DView/SpherePropertySheet.cpp

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,9 @@ SpherePropertySheetClass::SpherePropertySheetClass
4848
CWnd * pParentWnd,
4949
UINT iSelectPage
5050
)
51-
: m_RenderObj (NULL),
52-
CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
51+
: CPropertySheet(nIDCaption, pParentWnd, iSelectPage),
52+
m_RenderObj (RefCountPtr<SphereRenderObjClass>::Create_AddRef(sphere))
5353
{
54-
MEMBER_ADD (m_RenderObj, sphere);
5554
Initialize ();
5655
return ;
5756
}
@@ -69,10 +68,9 @@ SpherePropertySheetClass::SpherePropertySheetClass
6968
CWnd * pParentWnd,
7069
UINT iSelectPage
7170
)
72-
: m_RenderObj (NULL),
73-
CPropertySheet(pszCaption, pParentWnd, iSelectPage)
71+
: CPropertySheet(pszCaption, pParentWnd, iSelectPage),
72+
m_RenderObj (RefCountPtr<SphereRenderObjClass>::Create_AddRef(sphere))
7473
{
75-
MEMBER_ADD (m_RenderObj, sphere);
7674
Initialize ();
7775
return ;
7876
}
@@ -85,7 +83,6 @@ SpherePropertySheetClass::SpherePropertySheetClass
8583
/////////////////////////////////////////////////////////////////////////////
8684
SpherePropertySheetClass::~SpherePropertySheetClass (void)
8785
{
88-
MEMBER_RELEASE (m_RenderObj);
8986
return ;
9087
}
9188

@@ -183,7 +180,7 @@ SpherePropertySheetClass::Add_Object_To_Viewer (void)
183180
//
184181
// Create a new prototype for this object
185182
//
186-
SpherePrototypeClass *prototype = new SpherePrototypeClass (m_RenderObj);
183+
SpherePrototypeClass *prototype = new SpherePrototypeClass (m_RenderObj.Peek());
187184

188185
//
189186
// Update the asset manager with the new prototype
@@ -204,14 +201,14 @@ SpherePropertySheetClass::Add_Object_To_Viewer (void)
204201
//
205202
doc->Reload_Displayed_Object ();
206203
m_LastSavedName = m_RenderObj->Get_Name ();
207-
MEMBER_ADD (m_RenderObj, (SphereRenderObjClass *)doc->GetDisplayedObject ());
204+
m_RenderObj = RefCountPtr<SphereRenderObjClass>::Create_AddRef((SphereRenderObjClass *)doc->GetDisplayedObject ());
208205

209206
//
210207
// Pass the object along to the pages
211208
//
212-
m_GeneralPage.Set_Sphere (m_RenderObj);
213-
m_ColorPage.Set_Sphere (m_RenderObj);
214-
m_ScalePage.Set_Sphere (m_RenderObj);
209+
m_GeneralPage.Set_Sphere (m_RenderObj.Peek());
210+
m_ColorPage.Set_Sphere (m_RenderObj.Peek());
211+
m_ScalePage.Set_Sphere (m_RenderObj.Peek());
215212
}
216213

217214
return ;

Core/Tools/W3DView/SpherePropertySheet.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
#include "SphereColorPropPage.h"
4040
#include "SphereGeneralPropPage.h"
4141
#include "SphereSizePropPage.h"
42+
#include "ref_ptr.h"
4243

4344

4445
// Forward declarations
@@ -109,7 +110,7 @@ class SpherePropertySheetClass : public CPropertySheet
109110
SphereGeneralPropPageClass m_GeneralPage;
110111
SphereColorPropPageClass m_ColorPage;
111112
SphereSizePropPageClass m_ScalePage;
112-
SphereRenderObjClass * m_RenderObj;
113+
RefCountPtr<SphereRenderObjClass> m_RenderObj;
113114
CString m_LastSavedName;
114115
};
115116

0 commit comments

Comments
 (0)