[Libreoffice-commits] core.git: 2 commits - sdext/source svl/source
Noel Grandin
noel at peralex.com
Fri Jun 19 00:52:41 PDT 2015
sdext/source/pdfimport/tree/genericelements.hxx | 19 ++++++-----------
sdext/source/pdfimport/tree/style.hxx | 1
sdext/source/pdfimport/tree/treevisiting.hxx | 13 ------------
svl/source/inc/poolio.hxx | 4 +--
svl/source/items/itempool.cxx | 26 ++++++++++++------------
5 files changed, 22 insertions(+), 41 deletions(-)
New commits:
commit 0c5d286cbe299be356797447cb2b6747c68a015e
Author: Noel Grandin <noel at peralex.com>
Date: Wed Jun 17 15:41:45 2015 +0200
rename some types in SfxPoolItemArray_Impl
to make their purpose clearer
Change-Id: I05597f5e69d2e471f08fec545467923378dded74
diff --git a/svl/source/inc/poolio.hxx b/svl/source/inc/poolio.hxx
index b9b5854..7e659430 100644
--- a/svl/source/inc/poolio.hxx
+++ b/svl/source/inc/poolio.hxx
@@ -72,13 +72,13 @@ typedef std::deque< SfxPoolVersion_ImplPtr > SfxPoolVersionArr_Impl;
struct SfxPoolItemArray_Impl: public SfxPoolItemArrayBase_Impl
{
typedef std::vector<sal_uInt32> FreeList;
- typedef std::unordered_map<SfxPoolItem*,sal_uInt32> Hash;
+ typedef std::unordered_map<SfxPoolItem*,sal_uInt32> PoolItemPtrToIndexMap;
public:
/// Track list of indices into our array that contain an empty slot
FreeList maFree;
/// Hash of SfxPoolItem pointer to index into our array that contains that slot
- Hash maHash;
+ PoolItemPtrToIndexMap maPtrToIndex;
SfxPoolItemArray_Impl () {}
diff --git a/svl/source/items/itempool.cxx b/svl/source/items/itempool.cxx
index 019ab6f..c76d8f4 100644
--- a/svl/source/items/itempool.cxx
+++ b/svl/source/items/itempool.cxx
@@ -688,11 +688,11 @@ const SfxPoolItem& SfxItemPool::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich
// if is already in a pool, then it is worth checking if it is in this one.
if ( IsPooledItem(&rItem) )
{
- SfxPoolItemArray_Impl::Hash::const_iterator it;
- it = pItemArr->maHash.find(const_cast<SfxPoolItem *>(&rItem));
+ SfxPoolItemArray_Impl::PoolItemPtrToIndexMap::const_iterator it;
+ it = pItemArr->maPtrToIndex.find(const_cast<SfxPoolItem *>(&rItem));
// 1. search for an identical pointer in the pool
- if (it != pItemArr->maHash.end())
+ if (it != pItemArr->maPtrToIndex.end())
{
AddRef(rItem);
return rItem;
@@ -755,17 +755,17 @@ const SfxPoolItem& SfxItemPool::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich
AddRef( *pNewItem, pImp->nInitRefCount );
// 4. finally insert into the pointer array
- assert( pItemArr->maHash.find(pNewItem) == pItemArr->maHash.end() );
+ assert( pItemArr->maPtrToIndex.find(pNewItem) == pItemArr->maPtrToIndex.end() );
if ( !ppFreeIsSet )
{
sal_uInt32 nOffset = pItemArr->size();
- pItemArr->maHash.insert(std::make_pair(pNewItem, nOffset));
+ pItemArr->maPtrToIndex.insert(std::make_pair(pNewItem, nOffset));
pItemArr->push_back( pNewItem );
}
else
{
sal_uInt32 nOffset = std::distance(pItemArr->begin(), ppFree);
- pItemArr->maHash.insert(std::make_pair(pNewItem, nOffset));
+ pItemArr->maPtrToIndex.insert(std::make_pair(pNewItem, nOffset));
assert(*ppFree == NULL);
*ppFree = pNewItem;
}
@@ -776,7 +776,7 @@ const SfxPoolItem& SfxItemPool::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich
void SfxPoolItemArray_Impl::ReHash()
{
maFree.clear();
- maHash.clear();
+ maPtrToIndex.clear();
for (size_t nIdx = 0; nIdx < size(); ++nIdx)
{
@@ -785,8 +785,8 @@ void SfxPoolItemArray_Impl::ReHash()
maFree.push_back(nIdx);
else
{
- maHash.insert(std::make_pair(pItem,nIdx));
- assert(maHash.find(pItem) != maHash.end());
+ maPtrToIndex.insert(std::make_pair(pItem,nIdx));
+ assert(maPtrToIndex.find(pItem) != maPtrToIndex.end());
}
}
}
@@ -835,9 +835,9 @@ void SfxItemPool::Remove( const SfxPoolItem& rItem )
SfxPoolItemArray_Impl* pItemArr = pImp->maPoolItems[nIndex];
SFX_ASSERT( pItemArr, rItem.Which(), "removing Item not in Pool" );
- SfxPoolItemArray_Impl::Hash::iterator it;
- it = pItemArr->maHash.find(const_cast<SfxPoolItem *>(&rItem));
- if (it != pItemArr->maHash.end())
+ SfxPoolItemArray_Impl::PoolItemPtrToIndexMap::iterator it;
+ it = pItemArr->maPtrToIndex.find(const_cast<SfxPoolItem *>(&rItem));
+ if (it != pItemArr->maPtrToIndex.end())
{
sal_uInt32 nIdx = it->second;
assert(nIdx < pItemArr->size());
@@ -858,7 +858,7 @@ void SfxItemPool::Remove( const SfxPoolItem& rItem )
DELETEZ(p);
// remove ourselves from the hash
- pItemArr->maHash.erase(it);
+ pItemArr->maPtrToIndex.erase(it);
// record that this slot is free
pItemArr->maFree.push_back( nIdx );
commit 4c1926f34ec038b1566081f98b12f0a0d900d1cf
Author: Noel Grandin <noel at peralex.com>
Date: Mon Jun 15 16:41:32 2015 +0200
the ElementTreeVisitable interface is doing nothing useful
Change-Id: I89e8fb90de8aadce89a8f5e353a923c972e1569f
diff --git a/sdext/source/pdfimport/tree/genericelements.hxx b/sdext/source/pdfimport/tree/genericelements.hxx
index c91d11d..f1b9d34 100644
--- a/sdext/source/pdfimport/tree/genericelements.hxx
+++ b/sdext/source/pdfimport/tree/genericelements.hxx
@@ -70,7 +70,7 @@ namespace pdfi
css::uno::XComponentContext > m_xContext;
};
- struct Element : public ElementTreeVisitable
+ struct Element
{
protected:
Element( Element* pParent )
@@ -83,6 +83,11 @@ namespace pdfi
public:
virtual ~Element();
+ /**
+ To be implemented by every tree node that needs to be
+ visitable.
+ */
+ virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& rParentIt ) = 0;
/// Apply visitor to all children
void applyToChildren( ElementTreeVisitor& );
/// Union element geometry with given element
@@ -106,7 +111,6 @@ namespace pdfi
struct ListElement : public Element
{
ListElement() : Element( NULL ) {}
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& ) SAL_OVERRIDE;
};
@@ -117,7 +121,6 @@ namespace pdfi
HyperlinkElement( Element* pParent, const OUString& rURI )
: Element( pParent ), URI( rURI ) {}
public:
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& ) SAL_OVERRIDE;
OUString URI;
@@ -163,7 +166,6 @@ namespace pdfi
: DrawElement( pParent, nGCId ) {}
public:
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& ) SAL_OVERRIDE;
};
@@ -175,7 +177,6 @@ namespace pdfi
: GraphicalElement( pParent, nGCId ), FontId( nFontId ) {}
public:
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& ) SAL_OVERRIDE;
OUStringBuffer Text;
@@ -189,7 +190,6 @@ namespace pdfi
ParagraphElement( Element* pParent ) : Element( pParent ), Type( Normal ), bRtl( false ) {}
public:
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& rParentIt ) SAL_OVERRIDE;
// returns true only if only a single line is contained
@@ -213,7 +213,6 @@ namespace pdfi
const basegfx::B2DPolyPolygon& rPolyPoly,
sal_Int8 nAction );
public:
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& rParentIt ) SAL_OVERRIDE;
void updateGeometry();
@@ -234,7 +233,6 @@ namespace pdfi
: DrawElement( pParent, nGCId ), Image( nImage ) {}
public:
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& ) SAL_OVERRIDE;
ImageId Image;
@@ -252,10 +250,9 @@ namespace pdfi
private:
// helper method for resolveHyperlinks
bool resolveHyperlink( std::list<Element*>::iterator link_it, std::list<Element*>& rElements );
- public:
+ public:
virtual ~PageElement();
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& rParentIt ) SAL_OVERRIDE;
void emitPageAnchoredElements( EmitContext& rEmitContext );
@@ -282,9 +279,7 @@ namespace pdfi
public:
virtual ~DocumentElement();
- // ElementTreeVisitable
virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& ) SAL_OVERRIDE;
-
};
// this class is the differentiator of document types: it will create
diff --git a/sdext/source/pdfimport/tree/style.hxx b/sdext/source/pdfimport/tree/style.hxx
index 2b2e0a1..d29cf8e 100644
--- a/sdext/source/pdfimport/tree/style.hxx
+++ b/sdext/source/pdfimport/tree/style.hxx
@@ -31,7 +31,6 @@ namespace pdfi
{
struct Element;
struct EmitContext;
- struct ElementTreeVisitable;
class StyleContainer
{
diff --git a/sdext/source/pdfimport/tree/treevisiting.hxx b/sdext/source/pdfimport/tree/treevisiting.hxx
index 35217f8..d19eafc 100644
--- a/sdext/source/pdfimport/tree/treevisiting.hxx
+++ b/sdext/source/pdfimport/tree/treevisiting.hxx
@@ -55,19 +55,6 @@ namespace pdfi
};
typedef boost::shared_ptr<ElementTreeVisitor> ElementTreeVisitorSharedPtr;
- /** Visitee interface
-
- To be implemented by every tree node that needs to be
- visitable.
- */
- struct ElementTreeVisitable
- {
- virtual void visitedBy( ElementTreeVisitor&, const std::list< Element* >::const_iterator& rParentIt ) = 0;
-
- protected:
- ~ElementTreeVisitable() {}
- };
- typedef boost::shared_ptr<ElementTreeVisitable> ElementTreeVisitableSharedPtr;
}
#endif
More information about the Libreoffice-commits
mailing list