merge StringNode with RscDefine

Change-Id: Ia64b7419ccbb06ff55907717963864caef2023a8
Reviewed-on: https://gerrit.libreoffice.org/32374
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
This commit is contained in:
Noel Grandin 2016-12-23 10:50:17 +02:00
parent 597d178c2b
commit b641929e69
5 changed files with 49 additions and 65 deletions

View File

@ -137,7 +137,6 @@ merge StgAvlIterator with StgIterator
merge StgAvlNode with StgDirEntry merge StgAvlNode with StgDirEntry
merge StgCache with StgIo merge StgCache with StgIo
merge StgReader with WW8Reader merge StgReader with WW8Reader
merge StringNode with RscDefine
merge SvListView with SvTreeListBox merge SvListView with SvTreeListBox
merge SvXMLExportItemMapper with SwXMLTableItemMapper_Impl merge SvXMLExportItemMapper with SwXMLTableItemMapper_Impl
merge SvXMLImportItemMapper with SwXMLImportTableItemMapper_Impl merge SvXMLImportItemMapper with SwXMLImportTableItemMapper_Impl

View File

@ -114,17 +114,23 @@ public:
}; };
/*********** R s c D e f i n e *******************************************/ /*********** R s c D e f i n e *******************************************/
class RscDefine : public StringNode class RscDefine : public NameNode
{ {
friend class RscFileTab; friend class RscFileTab;
friend class RscDefineList; friend class RscDefineList;
friend class RscDefTree; friend class RscDefTree;
friend class RscExpression; friend class RscExpression;
friend class RscId; friend class RscId;
sal_uLong lFileKey; // file the define belongs to sal_uLong lFileKey; // file the define belongs to
sal_uInt32 nRefCount; // reference count to this object sal_uInt32 nRefCount; // reference count to this object
sal_Int32 lId; // identifier sal_Int32 lId; // identifier
RscExpression * pExp; // expression RscExpression * pExp; // expression
OString m_aName;
virtual COMPARE Compare( const NameNode * ) const override;
virtual COMPARE Compare( const void * ) const override;
protected: protected:
RscDefine( sal_uLong lFileKey, const OString& rDefName, RscDefine( sal_uLong lFileKey, const OString& rDefName,
@ -132,16 +138,17 @@ protected:
RscDefine( sal_uLong lFileKey, const OString& rDefName, RscDefine( sal_uLong lFileKey, const OString& rDefName,
RscExpression * pExpression ); RscExpression * pExpression );
virtual ~RscDefine() override; virtual ~RscDefine() override;
void IncRef(){ nRefCount++; }
void IncRef() { nRefCount++; }
void DecRef(); void DecRef();
void DefineToNumber(); void DefineToNumber();
using StringNode::Search;
public: public:
RscDefine * Search( const char * );
sal_uLong GetFileKey() const { return lFileKey; } sal_uLong GetFileKey() const { return lFileKey; }
void Evaluate(); void Evaluate();
sal_Int32 GetNumber() const { return lId; } sal_Int32 GetNumber() const { return lId; }
RscDefine* Search( const char * ) const;
const OString& GetName() const { return m_aName; }
}; };
typedef ::std::vector< RscDefine* > RscSubDefList; typedef ::std::vector< RscDefine* > RscSubDefList;

View File

@ -71,23 +71,6 @@ public:
virtual sal_uInt32 GetId() const; virtual sal_uInt32 GetId() const;
}; };
class StringNode : public NameNode
{
virtual COMPARE Compare( const NameNode * ) const override;
virtual COMPARE Compare( const void * ) const override;
protected:
using NameNode::Search;
OString m_aName;
public:
StringNode(const OString& rStr) { m_aName = rStr; }
StringNode* Search( const char * ) const;
const OString& GetName() const { return m_aName; }
};
#endif // INCLUDED_RSC_INC_RSCTREE_HXX #endif // INCLUDED_RSC_INC_RSCTREE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

View File

@ -115,7 +115,7 @@ OString RscId::GetName() const
} }
RscDefine::RscDefine( sal_uLong lKey, const OString& rDefName, sal_Int32 lDefId ) RscDefine::RscDefine( sal_uLong lKey, const OString& rDefName, sal_Int32 lDefId )
: StringNode( rDefName ) : m_aName( rDefName )
{ {
nRefCount = 0; nRefCount = 0;
lFileKey = lKey; lFileKey = lKey;
@ -125,8 +125,7 @@ RscDefine::RscDefine( sal_uLong lKey, const OString& rDefName, sal_Int32 lDefId
RscDefine::RscDefine( sal_uLong lKey, const OString& rDefName, RscDefine::RscDefine( sal_uLong lKey, const OString& rDefName,
RscExpression * pExpression ) RscExpression * pExpression )
: StringNode( rDefName ) : lId(0), m_aName( rDefName )
, lId(0)
{ {
nRefCount = 0; nRefCount = 0;
lFileKey = lKey; lFileKey = lKey;
@ -163,9 +162,34 @@ void RscDefine::Evaluate()
pExp->Evaluate( &lId ); pExp->Evaluate( &lId );
} }
RscDefine * RscDefine::Search( const char * pStr ) RscDefine * RscDefine::Search( const char * pSearch ) const
{ {
return static_cast<RscDefine *>(StringNode::Search( pStr )); return static_cast<RscDefine *>(NameNode::Search( static_cast<const void *>(pSearch) ));
}
COMPARE RscDefine::Compare( const NameNode * pSearch ) const
{
int nCmp = strcmp( m_aName.getStr(),
static_cast<const RscDefine *>(pSearch)->m_aName.getStr() );
if( nCmp < 0 )
return LESS;
else if( nCmp > 0 )
return GREATER;
else
return EQUAL;
}
// pSearch is a pointer to const char *
COMPARE RscDefine::Compare( const void * pSearch ) const
{
int nCmp = strcmp( m_aName.getStr(), static_cast<const char *>(pSearch) );
if( nCmp < 0 )
return LESS;
else if( nCmp > 0 )
return GREATER;
else
return EQUAL;
} }
RscDefine * RscDefineList::New( sal_uLong lFileKey, const OString& rDefName, RscDefine * RscDefineList::New( sal_uLong lFileKey, const OString& rDefName,

View File

@ -355,34 +355,5 @@ sal_uInt32 IdNode::GetId() const
return 0xFFFFFFFF; return 0xFFFFFFFF;
} }
StringNode * StringNode::Search( const char * pSearch ) const
{
return static_cast<StringNode *>(NameNode::Search( static_cast<const void *>(pSearch) ));
}
COMPARE StringNode::Compare( const NameNode * pSearch ) const
{
int nCmp = strcmp( m_aName.getStr(),
static_cast<const StringNode *>(pSearch)->m_aName.getStr() );
if( nCmp < 0 )
return LESS;
else if( nCmp > 0 )
return GREATER;
else
return EQUAL;
}
// pSearch is a pointer to const char *
COMPARE StringNode::Compare( const void * pSearch ) const
{
int nCmp = strcmp( m_aName.getStr(), static_cast<const char *>(pSearch) );
if( nCmp < 0 )
return LESS;
else if( nCmp > 0 )
return GREATER;
else
return EQUAL;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */