remove unneeded virtual destructors

This commit is contained in:
Garux
2025-09-08 12:47:06 +05:00
parent d7c9a5ea70
commit 8221dbf873
44 changed files with 70 additions and 194 deletions
-13
View File
@@ -31,8 +31,6 @@
#include "misc.h"
#include "./dialogs/dialogs-gtk.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
// Added patch merging, wahey!
@@ -41,17 +39,6 @@
// problem is, you cant put patches into entities as yet :(
//
DPatch::DPatch(){
width = MIN_PATCH_WIDTH;
height = MIN_PATCH_HEIGHT;
QER_entity = NULL;
QER_brush = NULL;
}
DPatch::~DPatch(){
}
void DPatch::SetTexture( const char *textureName ){
strcpy( texture, textureName );
}
+3 -6
View File
@@ -64,15 +64,12 @@ public:
DPatch* MergePatches( patch_merge_t merge_info, DPatch& p1, DPatch& p2 );
patch_merge_t IsMergable( const DPatch& other );
bool ResetTextures( const char *oldTextureName, const char *newTextureName );
scene::Node* QER_entity;
scene::Node* QER_brush;
scene::Node* QER_entity{};
scene::Node* QER_brush{};
void LoadFromPatch( scene::Instance& patch );
void BuildInRadiant( scene::Node* entity = NULL );
void SetTexture( const char* textureName );
char texture[256];
int width, height;
int width = MIN_PATCH_WIDTH, height = MIN_PATCH_HEIGHT;
drawVert_t points[MAX_PATCH_WIDTH][MAX_PATCH_HEIGHT];
DPatch();
~DPatch();
};
-4
View File
@@ -58,10 +58,6 @@ DPlane::DPlane( const vec3_t va, const vec3_t vb, const vec3_t vc, const _QERFac
m_shader = texInfo.m_shader;
}
DPlane::~DPlane(){
}
//////////////////////////////////////////////////////////////////////
// Implementation
//////////////////////////////////////////////////////////////////////
-1
View File
@@ -51,7 +51,6 @@ public:
DPlane( const vec3_t va, const vec3_t vb, const vec3_t vc, const _QERFaceData* texData );
DPlane() = default;
~DPlane();
bool m_bChkOk;
_QERFaceData texInfo;
-12
View File
@@ -24,18 +24,6 @@
#include "DPoint.h"
#include "misc.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
DPoint::DPoint(){
}
DPoint::~DPoint(){
}
//////////////////////////////////////////////////////////////////////
// Implementation
//////////////////////////////////////////////////////////////////////
-3
View File
@@ -28,9 +28,6 @@
class DPoint
{
public:
DPoint();
~DPoint();
bool operator ==( vec3_t other );
vec3_t _pnt;
-11
View File
@@ -35,19 +35,8 @@
#include "misc.h"
#include "shapes.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
bool bFacesAll[6] = {true, true, true, true, true, true};
DShape::DShape(){
}
DShape::~DShape(){
}
void DShape::BuildRegularPrism( vec3_t min, vec3_t max, int nSides, bool bAlignTop ){
vec3_t vc[MAX_POLYGON_FACES + 2], vd[MAX_POLYGON_FACES + 2];
-3
View File
@@ -45,9 +45,6 @@ public:
int m_nNextBrush;
static DBrush* GetBoundingCube_Ext( vec3_t min, vec3_t max, const char* textureName, bool* bUseFaces = bFacesAll, bool detail = false );
DShape();
~DShape();
void Commit();
private:
DBrush* GetBoundingCube( vec3_t min, vec3_t max, const char* textureName, DEntity* ent = NULL, bool* bUseFaces = bFacesAll );
-12
View File
@@ -36,12 +36,6 @@ CPortals portals;
CPortalsRender render;
CBspPortal::CBspPortal(){
}
CBspPortal::~CBspPortal(){
}
bool CBspPortal::Build( char *def ){
char *c = def;
unsigned int point_count;
@@ -107,12 +101,6 @@ bool CBspPortal::Build( char *def ){
return true;
}
CPortals::CPortals(){
}
CPortals::~CPortals(){
}
void CPortals::Purge(){
portal.clear();
-10
View File
@@ -27,12 +27,6 @@
class CBspPortal {
public:
CBspPortal();
~CBspPortal();
protected:
public:
Vector3 center{ 0 };
std::vector<Vector3> point;
@@ -61,10 +55,6 @@ class CPortals {
} format;
public:
CPortals();
~CPortals();
void Load(); // use filename in fn
void Purge();
-11
View File
@@ -32,8 +32,6 @@ class UndoMemento
{
public:
virtual void release() = 0;
virtual ~UndoMemento() {
}
};
class Undoable
@@ -41,16 +39,12 @@ class Undoable
public:
virtual UndoMemento* exportState() const = 0;
virtual void importState( const UndoMemento* state ) = 0;
virtual ~Undoable() {
}
};
class UndoObserver
{
public:
virtual void save( Undoable* undoable ) = 0;
virtual ~UndoObserver() {
}
};
class UndoTracker
@@ -60,8 +54,6 @@ public:
virtual void begin() = 0;
virtual void undo() = 0;
virtual void redo() = 0;
virtual ~UndoTracker() {
}
};
class UndoSystem
@@ -82,9 +74,6 @@ public:
virtual void trackerAttach( UndoTracker& tracker ) = 0;
virtual void trackerDetach( UndoTracker& tracker ) = 0;
virtual ~UndoSystem() {
}
};
#include "modulesystem.h"
+1 -2
View File
@@ -31,8 +31,7 @@ public:
virtual int getPixelDescent() const = 0;
virtual void printString( const char *s ) = 0;
virtual void renderString( const char *s, const GLuint& tex, const unsigned char colour[3], unsigned int& out_wid, unsigned int& out_hei ) = 0;
virtual ~GLFont(){
}
virtual ~GLFont() = default;
};
GLFont *glfont_create( const char* family, int fontSize, const char* appPath );
-4
View File
@@ -34,10 +34,6 @@ class XORRectangle {
gl().glEnd();
}
public:
XORRectangle() {
}
~XORRectangle() {
}
void render( rect_t rect, int viewWidth, int viewHeight ) {
if( rect.max[0] != rect.min[0] && rect.max[1] != rect.min[1] ) {
GlobalOpenGL_debugAssertNoErrors();
+3 -4
View File
@@ -52,7 +52,7 @@ public:
};
class UndoFileChangeTracker : public UndoTracker, public MapFile
class UndoFileChangeTracker final : public UndoTracker, public MapFile
{
std::size_t m_size;
std::size_t m_saved;
@@ -125,7 +125,7 @@ public:
};
class MapRoot : public scene::Node::Symbiot, public scene::Instantiable, public scene::Traversable::Observer
class MapRoot final : public scene::Node::Symbiot, public scene::Instantiable, public scene::Traversable::Observer
{
class TypeCasts
{
@@ -178,8 +178,7 @@ public:
GlobalUndoSystem().trackerAttach( m_changeTracker );
}
~MapRoot(){
}
~MapRoot() = default;
MapRoot( MapRoot&& ) noexcept = default; // no copy: Layers use m_parent pointer
void release() override {
GlobalUndoSystem().trackerDetach( m_changeTracker );
+2 -4
View File
@@ -57,8 +57,7 @@ public:
}
template<typename Other> DefaultAllocator( const DefaultAllocator<Other>& ){
}
~DefaultAllocator(){
}
~DefaultAllocator() = default;
pointer address( reference instance ) const {
return &instance;
@@ -123,8 +122,7 @@ public:
}
template<typename Other> NamedAllocator( const NamedAllocator<Other>& other ) : m_name( other.m_name ){
}
~NamedAllocator(){
}
~NamedAllocator() = default;
pointer address( reference instance ) const {
return allocator_type::address( instance );
+9 -14
View File
@@ -165,8 +165,6 @@ public:
{
public:
virtual void release() = 0;
virtual ~Symbiot(){
}
};
private:
@@ -180,7 +178,7 @@ public:
bool m_isRoot;
Layer *m_layer; // nullptr for group entity node; they are not finely manageable and affect children visibility
bool isRoot(){
bool isRoot() const {
return m_isRoot;
}
@@ -193,8 +191,7 @@ public:
m_isRoot( false ),
m_layer( layer ){
}
~Node(){
}
~Node() = default;
void IncRef(){
ASSERT_MESSAGE( m_refcount < ( 1 << 24 ), "Node::decref: uninitialised refcount" );
@@ -226,19 +223,19 @@ public:
bool excluded( unsigned int state ) const {
return ( m_state & state ) != 0;
}
bool operator<( const scene::Node& other ){
bool operator<( const scene::Node& other ) const {
return this < &other;
}
bool operator==( const scene::Node& other ){
bool operator==( const scene::Node& other ) const {
return this == &other;
}
bool operator!=( const scene::Node& other ){
bool operator!=( const scene::Node& other ) const {
return this != &other;
}
};
class NullNode : public Node::Symbiot
class NullNode final : public Node::Symbiot
{
NodeTypeCastTable m_casts;
Node m_node;
@@ -626,10 +623,7 @@ class Instance
}
}
Instance( const scene::Instance& other );
Instance& operator=( const scene::Instance& other );
public:
Instance( const scene::Path& path, Instance* parent, void* instance, InstanceTypeCastTable& casts ) :
m_path( path ),
m_parent( parent ),
@@ -647,8 +641,9 @@ public:
m_parentSelectedChanged( true ){
ASSERT_MESSAGE( ( parent == 0 ) == ( path.size() == 1 ), "instance has invalid parent" );
}
virtual ~Instance(){
}
virtual ~Instance() = default;
Instance( const scene::Instance& other ) = delete;
Instance& operator=( const scene::Instance& other ) = delete;
const scene::Path& path() const {
return m_path;
+1 -2
View File
@@ -415,8 +415,7 @@ class BufferedTextOutputStream : public TextOutputStream
public:
BufferedTextOutputStream( TextOutputStreamType& outputStream ) : outputStream( outputStream ) {
}
~BufferedTextOutputStream(){
}
~BufferedTextOutputStream() = default;
std::size_t write( const char* buffer, std::size_t length ){
std::size_t remaining = length;
for (;; )
+6 -9
View File
@@ -26,7 +26,7 @@
#include "generic/callback.h"
template<typename Copyable>
class BasicUndoMemento : public UndoMemento
class BasicUndoMemento final : public UndoMemento
{
Copyable m_data;
public:
@@ -45,7 +45,7 @@ public:
template<typename Copyable>
class ObservedUndoableObject : public Undoable
class ObservedUndoableObject final : public Undoable
{
typedef Callback<void(const Copyable&)> ImportCallback;
@@ -57,10 +57,8 @@ public:
ObservedUndoableObject( Copyable & object, const ImportCallback &importCallback )
: m_object( object ), m_importCallback( importCallback ), m_undoQueue( 0 ), m_map( 0 )
{
}
~ObservedUndoableObject(){
}
{}
~ObservedUndoableObject() = default;
MapFile* map(){
return m_map;
@@ -95,7 +93,7 @@ public:
};
template<typename Copyable>
class UndoableObject : public Undoable
class UndoableObject final : public Undoable
{
Copyable& m_object;
UndoObserver* m_undoQueue;
@@ -105,8 +103,7 @@ public:
UndoableObject( Copyable& object )
: m_object( object ), m_undoQueue( 0 ), m_map( 0 )
{}
~UndoableObject(){
}
~UndoableObject() = default;
void instanceAttach( MapFile* map ){
m_map = map;
+1 -1
View File
@@ -612,7 +612,7 @@ public:
}
};
class PicoModelNode : public scene::Node::Symbiot, public scene::Instantiable
class PicoModelNode final : public scene::Node::Symbiot, public scene::Instantiable
{
class TypeCasts
{
+1 -1
View File
@@ -592,7 +592,7 @@ public:
typedef MemberCaller<Doom3GroupInstance, void(const Selectable&), &Doom3GroupInstance::selectionChangedComponent> SelectionChangedComponentCaller;
};
class Doom3GroupNode :
class Doom3GroupNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Cloneable,
+1 -1
View File
@@ -373,7 +373,7 @@ public:
typedef MemberCaller<EclassModelInstance, void(), &EclassModelInstance::applyTransform> ApplyTransformCaller;
};
class EclassModelNode :
class EclassModelNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Cloneable,
+1 -2
View File
@@ -45,8 +45,7 @@ public:
ClassnameFilter( Entity& entity, scene::Node& node ) : m_node( node ), m_entity( entity ){
}
~ClassnameFilter(){
}
~ClassnameFilter() = default;
void instanceAttach(){
GlobalFilterSystem().registerFilterable( *this );
+1 -1
View File
@@ -339,7 +339,7 @@ public:
typedef MemberCaller<GenericEntityInstance, void(), &GenericEntityInstance::applyTransform> ApplyTransformCaller;
};
class GenericEntityNode :
class GenericEntityNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Cloneable
+1 -1
View File
@@ -388,7 +388,7 @@ public:
typedef MemberCaller<GroupInstance, void(), &GroupInstance::applyTransform> ApplyTransformCaller;
};
class GroupNode :
class GroupNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Cloneable,
+1 -1
View File
@@ -1975,7 +1975,7 @@ public:
}
};
class LightNode :
class LightNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Cloneable,
+1 -1
View File
@@ -427,7 +427,7 @@ public:
typedef MemberCaller<MiscModelInstance, void(), &MiscModelInstance::applyTransform> ApplyTransformCaller;
};
class MiscModelNode :
class MiscModelNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Cloneable,
+1 -1
View File
@@ -434,7 +434,7 @@ public:
}
};
class ModelNode : public scene::Node::Symbiot, public scene::Instantiable
class ModelNode final : public scene::Node::Symbiot, public scene::Instantiable
{
class TypeCasts
{
+1 -1
View File
@@ -563,7 +563,7 @@ public:
}
};
class PicoModelNode : public scene::Node::Symbiot, public scene::Instantiable
class PicoModelNode final : public scene::Node::Symbiot, public scene::Instantiable
{
class TypeCasts
{
+2 -2
View File
@@ -824,7 +824,7 @@ BlendFactor evaluateBlendFactor( const ShaderValue& value, const ShaderParameter
return BLEND_ZERO;
}
class CShader : public IShader
class CShader final : public IShader
{
std::size_t m_refcount;
@@ -867,7 +867,7 @@ public:
realise();
}
virtual ~CShader(){
~CShader(){
unrealise();
ASSERT_MESSAGE( m_refcount == 0, "deleting active shader" );
+4 -4
View File
@@ -881,7 +881,7 @@ public:
virtual void evaluateTransform() = 0;
};
class Face :
class Face final :
public OpenGLRenderable,
public Filterable,
public Undoable,
@@ -889,7 +889,7 @@ class Face :
{
std::size_t m_refcount;
class SavedState : public UndoMemento
class SavedState final : public UndoMemento
{
public:
FacePlane::SavedState m_planeState;
@@ -1550,7 +1550,7 @@ public:
virtual void visit( Face& face ) const = 0;
};
class Brush :
class Brush final :
public TransformNode,
public Bounded,
public Cullable,
@@ -1929,7 +1929,7 @@ public:
}
/// \brief The undo memento for a brush stores only the list of face references - the faces are not copied.
class BrushUndoMemento : public UndoMemento
class BrushUndoMemento final : public UndoMemento
{
public:
BrushUndoMemento( const Faces& faces ) : m_faces( faces ){
+1 -1
View File
@@ -26,7 +26,7 @@
#include "brushtokens.h"
#include "brushxml.h"
class BrushNode :
class BrushNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Cloneable
-2
View File
@@ -230,8 +230,6 @@ public:
m_comment << key;
m_comment << " : ";
}
~AttributeImporter(){
}
TreeXMLImporter& pushElement( const XMLElement& element ) override {
ERROR_MESSAGE( PARSE_ERROR( element.name(), "attribute" ) );
return *this;
+1 -4
View File
@@ -60,7 +60,7 @@ public:
static void updateTextures( const char* name );
FindTextureDialog();
virtual ~FindTextureDialog();
~FindTextureDialog() = default;
void BuildDialog() override;
void constructWindow( QWidget* parent ){
@@ -127,9 +127,6 @@ s_pressedKeysFilter;
FindTextureDialog::FindTextureDialog() : m_bSelectedOnly( false ){
}
FindTextureDialog::~FindTextureDialog(){
}
void FindTextureDialog::BuildDialog(){
GetWidget()->setWindowTitle( "Find / Replace Texture(s)" );
+1 -1
View File
@@ -653,7 +653,7 @@ public:
}
};
class BasicContainer : public scene::Node::Symbiot
class BasicContainer final : public scene::Node::Symbiot
{
class TypeCasts
{
+6 -9
View File
@@ -276,7 +276,7 @@ public:
};
/* specialized copy of class MapRoot */
class ModelGraphRoot : public scene::Node::Symbiot, public scene::Instantiable, public scene::Traversable::Observer
class ModelGraphRoot final : public scene::Node::Symbiot, public scene::Instantiable, public scene::Traversable::Observer
{
class TypeCasts
{
@@ -311,8 +311,7 @@ public:
m_traverse.attach( this );
}
~ModelGraphRoot(){
}
~ModelGraphRoot() = default;
void release() override {
m_traverse.detach( this );
delete this;
@@ -352,7 +351,7 @@ public:
#include "../plugins/entity/model.h"
class ModelNode :
class ModelNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Traversable::Observer
@@ -526,7 +525,7 @@ public:
}
};
class ModelBrowser : public scene::Instantiable::Observer
class ModelBrowser final : public scene::Instantiable::Observer
{
// track instances in the order of insertion
std::vector<scene::Instance*> m_modelInstances;
@@ -537,10 +536,8 @@ public:
//globalOutputStream() << "vertical scroll\n";
setOriginZ( -value );
} )
{
}
~ModelBrowser(){
}
{}
~ModelBrowser() = default;
const int m_MSAA = 8;
Vector3 m_background_color = Vector3( .25f );
+1 -1
View File
@@ -126,7 +126,7 @@ public:
}
};
class NullModelNode : public scene::Node::Symbiot, public scene::Instantiable
class NullModelNode final : public scene::Node::Symbiot, public scene::Instantiable
{
class TypeCasts
{
+3 -3
View File
@@ -314,7 +314,7 @@ public:
};
// parametric surface defined by quadratic bezier control curves
class Patch :
class Patch final :
public XMLImporter,
public XMLExporter,
public TransformNode,
@@ -356,7 +356,7 @@ class Patch :
typedef Array<PatchControl> PatchControlArray;
class SavedState : public UndoMemento
class SavedState final : public UndoMemento
{
public:
SavedState(
@@ -1679,7 +1679,7 @@ public:
template<typename TokenImporter, typename TokenExporter>
class PatchNode :
class PatchNode final :
public scene::Node::Symbiot,
public scene::Instantiable,
public scene::Cloneable
+9 -17
View File
@@ -41,7 +41,7 @@
#include <list>
/* plugin manager --------------------------------------- */
class CPluginSlot : public IPlugIn
class CPluginSlot final : public IPlugIn
{
CopiedString m_menu_name;
const _QERPluginTable *mpTable;
@@ -168,29 +168,21 @@ class CPluginSlots
{
std::list<CPluginSlot *> mSlots;
public:
virtual ~CPluginSlots();
~CPluginSlots(){
for ( auto& pluginSlot : mSlots )
delete std::exchange( pluginSlot, nullptr );
}
void AddPluginSlot( QWidget* main_window, const char* name, const _QERPluginTable& table ){
mSlots.push_back( new CPluginSlot( main_window, name, table ) );
}
void PopulateMenu( PluginsVisitor& menu );
void PopulateMenu( PluginsVisitor& menu ){
for ( auto *pluginSlot : mSlots )
menu.visit( *pluginSlot );
}
};
CPluginSlots::~CPluginSlots(){
for ( auto& pluginSlot : mSlots )
{
delete std::exchange( pluginSlot, nullptr );
}
}
void CPluginSlots::PopulateMenu( PluginsVisitor& menu ){
for ( auto *pluginSlot : mSlots )
{
menu.visit( *pluginSlot );
}
}
CPluginSlots g_plugin_slots;
-3
View File
@@ -31,9 +31,6 @@
class IPlugIn
{
public:
IPlugIn() { }
virtual ~IPlugIn() { }
virtual const char* getMenuName() = 0;
virtual std::size_t getCommandCount() = 0;
virtual const char* getCommand( std::size_t ) = 0;
+2 -4
View File
@@ -58,10 +58,8 @@ class CPointfile : public ISAXHandler, public Renderable, public OpenGLRenderabl
static Shader* m_renderstate;
StringOutputStream m_characters;
public:
CPointfile(){
}
~CPointfile(){
}
CPointfile() = default;
~CPointfile() = default;
void Init();
void PushPoint( const Vector3& v );
void GenerateDisplayList();
+1 -2
View File
@@ -330,8 +330,7 @@ public:
class QStackedWidget *m_notebook;
class QTreeView *m_treeview;
virtual ~PrefsDlg(){
}
virtual ~PrefsDlg() = default;
/*!
path for global settings
+1 -2
View File
@@ -621,8 +621,7 @@ class OpenGLShader final : public Shader
public:
OpenGLShader() : m_shader( 0 ), m_used( 0 ){
}
~OpenGLShader(){
}
~OpenGLShader() = default;
void construct( const char* name );
void destroy(){
if ( m_shader ) {
+2 -2
View File
@@ -53,7 +53,7 @@ public:
};
class RadiantUndoSystem : public UndoSystem
class RadiantUndoSystem final : public UndoSystem
{
INTEGER_CONSTANT( MAX_UNDO_LEVELS, 4096 );
@@ -199,7 +199,7 @@ class RadiantUndoSystem : public UndoSystem
UndoStack m_undo_stack;
UndoStack m_redo_stack;
class UndoStackFiller : public UndoObserver
class UndoStackFiller final : public UndoObserver
{
UndoStack* m_stack;
public:
+1 -1
View File
@@ -99,7 +99,7 @@ public:
m_monitoring_timer.callOnTimeout( [this](){ RoutineProcessing(); } );
m_monitoring_timer.setInterval( 25 );
}
virtual ~CWatchBSP(){
~CWatchBSP(){
EndMonitoringLoop();
Net_Shutdown();
}