summaryrefslogtreecommitdiff
path: root/idl
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-02-22 15:59:13 +0200
committerNoel Grandin <noel@peralex.com>2016-02-23 10:07:09 +0200
commit20276795b7a3b968fca873f29bbb971afc9fc0a8 (patch)
tree6f2bba70a6cdf0c7ee197f07bd6954dd331583c1 /idl
parentb4203f530c856bafb117a7391905b25c3a5baa4b (diff)
small cleanups in .SDI parser
Change-Id: Ic7122e3ecfe2914e27945fd508199f7ec1d6bdab
Diffstat (limited to 'idl')
-rw-r--r--idl/inc/database.hxx5
-rw-r--r--idl/source/objects/slot.cxx2
-rw-r--r--idl/source/prj/database.cxx32
-rw-r--r--idl/source/prj/parser.cxx13
4 files changed, 30 insertions, 22 deletions
diff --git a/idl/inc/database.hxx b/idl/inc/database.hxx
index 71e77b4f2b71..eb43e5f54281 100644
--- a/idl/inc/database.hxx
+++ b/idl/inc/database.hxx
@@ -123,7 +123,7 @@ public:
sal_uInt32 GetUniqueId() { return ++nUniqueId; }
bool FindId( const OString& rIdName, sal_uLong * pVal );
bool InsertId( const OString& rIdName, sal_uLong nVal );
- bool ReadIdFile( const OUString & rFileName );
+ bool ReadIdFile( const OString& rFileName );
SvMetaType * FindType( const OString& rName );
static SvMetaType * FindType( const SvMetaType *, SvRefMemberList<SvMetaType *>& );
@@ -131,8 +131,9 @@ public:
SvMetaType * ReadKnownType( SvTokenStream & rInStm );
SvMetaAttribute * ReadKnownAttr( SvTokenStream & rInStm,
SvMetaType * pType = nullptr );
- SvMetaAttribute * SearchKnownAttr( const SvIdentifier& );
+ SvMetaAttribute * FindKnownAttr( const SvIdentifier& );
SvMetaClass * ReadKnownClass( SvTokenStream & rInStm );
+ SvMetaClass * FindKnownClass( const OString& aName );
void AddDepFile(OUString const& rFileName);
void WriteDepFile(SvFileStream & rStream, OUString const& rTarget);
};
diff --git a/idl/source/objects/slot.cxx b/idl/source/objects/slot.cxx
index 35920f92f514..2b2e23c55f0e 100644
--- a/idl/source/objects/slot.cxx
+++ b/idl/source/objects/slot.cxx
@@ -377,7 +377,7 @@ bool SvMetaSlot::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
{
bOk = SvMetaAttribute::ReadSvIdl( rBase, rInStm );
- SvMetaAttribute *pAttr2 = rBase.SearchKnownAttr( GetSlotId() );
+ SvMetaAttribute *pAttr2 = rBase.FindKnownAttr( GetSlotId() );
if( pAttr2 )
{
// for testing purposes: reference in case of complete definition
diff --git a/idl/source/prj/database.cxx b/idl/source/prj/database.cxx
index 00f2ab18b9c1..4926b59869fa 100644
--- a/idl/source/prj/database.cxx
+++ b/idl/source/prj/database.cxx
@@ -139,8 +139,9 @@ bool SvIdlDataBase::InsertId( const OString& rIdName, sal_uLong nVal )
return false;
}
-bool SvIdlDataBase::ReadIdFile( const OUString & rFileName )
+bool SvIdlDataBase::ReadIdFile( const OString& rOFileName )
{
+ OUString rFileName = OStringToOUString(rOFileName, RTL_TEXTENCODING_ASCII_US);
OUString aFullName;
osl::File::searchFileURL( rFileName, GetPath(), aFullName);
osl::FileBase::getSystemPathFromFileURL( aFullName, aFullName );
@@ -236,8 +237,7 @@ bool SvIdlDataBase::ReadIdFile( const OUString & rFileName )
throw SvParseException("unexpected eof in #include", rTok);
}
}
- if (!ReadIdFile(OStringToOUString(aName.toString(),
- RTL_TEXTENCODING_ASCII_US)))
+ if (!ReadIdFile(aName.toString()))
{
throw SvParseException("cannot read file: " + aName, rTok);
}
@@ -328,10 +328,7 @@ SvMetaAttribute * SvIdlDataBase::ReadKnownAttr
return nullptr;
}
-SvMetaAttribute* SvIdlDataBase::SearchKnownAttr
-(
- const SvIdentifier& rId
-)
+SvMetaAttribute* SvIdlDataBase::FindKnownAttr( const SvIdentifier& rId )
{
sal_uLong n;
if( FindId( rId.getString(), &n ) )
@@ -353,17 +350,26 @@ SvMetaClass * SvIdlDataBase::ReadKnownClass( SvTokenStream & rInStm )
SvToken& rTok = rInStm.GetToken_Next();
if( rTok.IsIdentifier() )
- for( sal_uLong n = 0; n < aClassList.size(); n++ )
- {
- SvMetaClass * pClass = aClassList[n];
- if( pClass->GetName().equals(rTok.GetString()) )
- return pClass;
- }
+ {
+ SvMetaClass* p = FindKnownClass(rTok.GetString());
+ if (p)
+ return p;
+ }
rInStm.Seek( nTokPos );
return nullptr;
}
+SvMetaClass * SvIdlDataBase::FindKnownClass( const OString& aName )
+{
+ for( sal_uLong n = 0; n < aClassList.size(); n++ )
+ {
+ SvMetaClass * pClass = aClassList[n];
+ if( pClass->GetName() == aName )
+ return pClass;
+ }
+ return nullptr;
+}
void SvIdlDataBase::Write(const OString& rText)
{
if( nVerbosity != 0 )
diff --git a/idl/source/prj/parser.cxx b/idl/source/prj/parser.cxx
index fe1e2b93e511..b8899313c586 100644
--- a/idl/source/prj/parser.cxx
+++ b/idl/source/prj/parser.cxx
@@ -47,8 +47,8 @@ void SvIdlParser::ReadSvIdl( bool bImported, const OUString & rPath )
void SvIdlParser::ReadModuleHeader(SvMetaModule& rModule)
{
OString aName = ReadIdentifier();
- rBase.Push( &rModule ); // onto the context stack
rModule.SetName( aName );
+ rBase.Push( &rModule ); // onto the context stack
ReadModuleBody(rModule);
rBase.GetStack().pop_back(); // remove from stack
}
@@ -62,7 +62,7 @@ void SvIdlParser::ReadModuleBody(SvMetaModule& rModule)
OString aSlotIdFile;
if( !ReadStringSvIdl( SvHash_SlotIdFile(), rInStm, aSlotIdFile ) )
break;
- if( !rBase.ReadIdFile( OStringToOUString(aSlotIdFile, RTL_TEXTENCODING_ASCII_US)) )
+ if( !rBase.ReadIdFile( aSlotIdFile ) )
{
throw SvParseException( rInStm, "cannot read file: " + aSlotIdFile );
}
@@ -368,7 +368,7 @@ bool SvIdlParser::ReadInterfaceOrShellSlot(SvMetaSlot& rSlot)
else
{
bOk = rSlot.SvMetaAttribute::ReadSvIdl( rBase, rInStm );
- SvMetaAttribute *pAttr2 = rBase.SearchKnownAttr( rSlot.GetSlotId() );
+ SvMetaAttribute *pAttr2 = rBase.FindKnownAttr( rSlot.GetSlotId() );
if( pAttr2 )
{
SvMetaSlot * pKnownSlot = dynamic_cast<SvMetaSlot*>( pAttr2 );
@@ -419,7 +419,7 @@ bool SvIdlParser::ReadInterfaceOrShellMethodOrAttribute( SvMetaAttribute& rAttr
}
Read( ')' );
rAttr.aType->SetType( MetaTypeType::Method );
- }
+ }
if( bOk && ReadIf( '[' ) )
{
Read( ']' );
@@ -432,7 +432,8 @@ bool SvIdlParser::ReadInterfaceOrShellMethodOrAttribute( SvMetaAttribute& rAttr
SvMetaClass * SvIdlParser::ReadKnownClass()
{
- SvMetaClass* pClass = rBase.ReadKnownClass( rInStm );
+ OString aName(ReadIdentifier());
+ SvMetaClass* pClass = rBase.FindKnownClass( aName );
if( !pClass )
throw SvParseException( rInStm, "unknown class" );
return pClass;
@@ -443,7 +444,7 @@ SvMetaType * SvIdlParser::ReadKnownType()
OString aName = ReadIdentifier();
for( const auto& aType : rBase.GetTypeList() )
{
- if( aType->GetName().equals(aName) )
+ if( aType->GetName() == aName )
{
return aType;
}