@@ -1450,11 +1450,11 @@ class TemplateFilterFactory
1450
1450
public:
1451
1451
typedef TemplateVariant (FilterFunction)(const TemplateVariant &v,const TemplateVariant &arg);
1452
1452
1453
- static TemplateFilterFactory * instance ()
1453
+ static TemplateFilterFactory & instance ()
1454
1454
{
1455
- static TemplateFilterFactory * instance = 0 ;
1456
- if (instance==0 ) instance = new TemplateFilterFactory;
1457
- return instance;
1455
+ static std::unique_ptr< TemplateFilterFactory> instance;
1456
+ if (instance==0 ) instance = std::make_unique< TemplateFilterFactory>() ;
1457
+ return * instance;
1458
1458
}
1459
1459
1460
1460
TemplateVariant apply (const QCString &name,const TemplateVariant &v,const TemplateVariant &arg, bool &ok)
@@ -1483,7 +1483,7 @@ class TemplateFilterFactory
1483
1483
public:
1484
1484
AutoRegister<T>(const QCString &key)
1485
1485
{
1486
- TemplateFilterFactory::instance ()-> registerFilter (key,&T::apply);
1486
+ TemplateFilterFactory::instance (). registerFilter (key,&T::apply);
1487
1487
}
1488
1488
};
1489
1489
@@ -1610,7 +1610,7 @@ class ExprAstFilter : public ExprAst
1610
1610
TemplateVariant arg;
1611
1611
if (m_arg) arg = m_arg->resolve (c);
1612
1612
bool ok;
1613
- TemplateVariant result = TemplateFilterFactory::instance ()-> apply (m_name,v,arg,ok);
1613
+ TemplateVariant result = TemplateFilterFactory::instance (). apply (m_name,v,arg,ok);
1614
1614
if (!ok)
1615
1615
{
1616
1616
ci->warn (ci->templateName (),ci->line ()," unknown filter '%s'" ,qPrint (m_name));
@@ -1809,6 +1809,8 @@ class TemplateNode
1809
1809
TemplateNode *m_parent = 0 ;
1810
1810
};
1811
1811
1812
+ using TemplateNodePtr = std::unique_ptr<TemplateNode>;
1813
+
1812
1814
// ----------------------------------------------------------
1813
1815
1814
1816
/* * @brief Class representing a lexical token in a template */
@@ -1828,7 +1830,7 @@ using TemplateTokenStream = std::deque< TemplateTokenPtr >;
1828
1830
// ----------------------------------------------------------
1829
1831
1830
1832
/* * @brief Class representing a list of AST nodes in a template */
1831
- class TemplateNodeList : public std ::vector< std::unique_ptr<TemplateNode> >
1833
+ class TemplateNodeList : public std ::vector< TemplateNodePtr >
1832
1834
{
1833
1835
public:
1834
1836
void render (TextStream &ts,TemplateContext *c)
@@ -2913,12 +2915,12 @@ template<class T> class TemplateNodeCreator : public TemplateNode
2913
2915
public:
2914
2916
TemplateNodeCreator (TemplateParser *parser,TemplateNode *parent,int line)
2915
2917
: TemplateNode(parent), m_templateName(parser->templateName ()), m_line(line) {}
2916
- static TemplateNode * createInstance (TemplateParser *parser,
2918
+ static TemplateNodePtr createInstance (TemplateParser *parser,
2917
2919
TemplateNode *parent,
2918
2920
int line,
2919
2921
const QCString &data)
2920
2922
{
2921
- return new T (parser,parent,line,data);
2923
+ return std::make_unique<T> (parser,parent,line,data);
2922
2924
}
2923
2925
TemplateImpl *getTemplate ()
2924
2926
{
@@ -4530,19 +4532,19 @@ class TemplateNodeEncoding : public TemplateNodeCreator<TemplateNodeEncoding>
4530
4532
class TemplateNodeFactory
4531
4533
{
4532
4534
public:
4533
- typedef TemplateNode * (*CreateFunc)(TemplateParser *parser,
4535
+ typedef TemplateNodePtr (*CreateFunc)(TemplateParser *parser,
4534
4536
TemplateNode *parent,
4535
4537
int line,
4536
4538
const QCString &data);
4537
4539
4538
- static TemplateNodeFactory * instance ()
4540
+ static TemplateNodeFactory & instance ()
4539
4541
{
4540
- static TemplateNodeFactory * instance = 0 ;
4541
- if (instance==0 ) instance = new TemplateNodeFactory;
4542
- return instance;
4542
+ static std::unique_ptr< TemplateNodeFactory> instance;
4543
+ if (instance==0 ) instance = std::make_unique< TemplateNodeFactory>() ;
4544
+ return * instance;
4543
4545
}
4544
4546
4545
- TemplateNode * create (const QCString &name,
4547
+ TemplateNodePtr create (const QCString &name,
4546
4548
TemplateParser *parser,
4547
4549
TemplateNode *parent,
4548
4550
int line,
@@ -4564,7 +4566,7 @@ class TemplateNodeFactory
4564
4566
public:
4565
4567
AutoRegister<T>(const QCString &key)
4566
4568
{
4567
- TemplateNodeFactory::instance ()-> registerTemplateNode (key,T::createInstance);
4569
+ TemplateNodeFactory::instance (). registerTemplateNode (key,T::createInstance);
4568
4570
}
4569
4571
};
4570
4572
@@ -4960,8 +4962,8 @@ void TemplateParser::parse(
4960
4962
{
4961
4963
arg = tok_ptr->data .mid (sep+1 );
4962
4964
}
4963
- std::unique_ptr<TemplateNode> node { TemplateNodeFactory::instance ()->
4964
- create ( command,this ,parent,tok_ptr->line ,arg) } ;
4965
+ TemplateNodePtr node = TemplateNodeFactory::instance (). create (
4966
+ command,this ,parent,tok_ptr->line ,arg);
4965
4967
if (node)
4966
4968
{
4967
4969
nodes.push_back (std::move (node));
0 commit comments