Kaydet (Commit) 97e61ba5 authored tarafından Caolán McNamara's avatar Caolán McNamara

sync ONDXPagePtr impl with current SvRef impl

Change-Id: I85e62a8c634a681e2e53745e3bed52731e8740e0
üst 4034babe
......@@ -805,22 +805,31 @@ SvStream& connectivity::dbase::WriteONDXPagePtr(SvStream &rStream, const ONDXPag
return rStream;
}
// ONDXPagePtr
ONDXPagePtr::ONDXPagePtr()
: mpPage(nullptr)
, nPagePos(0)
{
}
ONDXPagePtr::ONDXPagePtr(ONDXPagePtr&& rRef)
{
mpPage = rRef.mpPage;
rRef.mpPage = nullptr;
nPagePos = rRef.nPagePos;
}
ONDXPagePtr::ONDXPagePtr(const ONDXPagePtr& rRef)
:mpPage(rRef.mpPage)
,nPagePos(rRef.nPagePos)
ONDXPagePtr::ONDXPagePtr(ONDXPagePtr const & rRef)
: mpPage(rRef.mpPage)
, nPagePos(rRef.nPagePos)
{
if (mpPage != nullptr)
mpPage->AddNextRef();
}
ONDXPagePtr::ONDXPagePtr(ONDXPage* pRefPage)
:mpPage(pRefPage)
,nPagePos(0)
: mpPage(pRefPage)
, nPagePos(0)
{
if (mpPage != nullptr)
mpPage->AddFirstRef();
......@@ -828,6 +837,20 @@ ONDXPagePtr::ONDXPagePtr(ONDXPage* pRefPage)
nPagePos = pRefPage->GetPagePos();
}
ONDXPagePtr::~ONDXPagePtr()
{
if (mpPage != nullptr) mpPage->ReleaseRef();
}
void ONDXPagePtr::Clear()
{
if (mpPage != nullptr) {
ONDXPage * pRefObj = mpPage;
mpPage = nullptr;
pRefObj->ReleaseRef();
}
}
ONDXPagePtr& ONDXPagePtr::operator=(ONDXPagePtr const & rOther)
{
if (rOther.mpPage != nullptr) {
......
......@@ -90,19 +90,20 @@ namespace connectivity
sal_uInt32 nPagePos; // Position in the index file
public:
ONDXPagePtr() : mpPage(nullptr), nPagePos(0) {}
ONDXPagePtr(const ONDXPagePtr& rRef);
ONDXPagePtr();
ONDXPagePtr(ONDXPagePtr&& rObj);
ONDXPagePtr(ONDXPagePtr const & rRef);
ONDXPagePtr(ONDXPage* pRefPage);
inline ~ONDXPagePtr();
~ONDXPagePtr();
void Clear();
ONDXPagePtr& operator=(ONDXPagePtr const & rRef);
bool Is() const { return mpPage != nullptr; }
ONDXPage * operator ->() const { assert(mpPage != nullptr); return mpPage; }
operator ONDXPage *() const { return mpPage; }
sal_uInt32 GetPagePos() const {return nPagePos;}
bool HasPage() const {return nPagePos != 0;}
operator ONDXPage *() const { return mpPage; }
ONDXPage * operator ->() const { assert(mpPage != nullptr); return mpPage; }
bool Is() const { return mpPage != nullptr; }
inline void Clear();
ONDXPagePtr& operator=(const ONDXPagePtr& rRef);
};
// Index Page
......@@ -202,16 +203,6 @@ namespace connectivity
#endif
};
inline ONDXPagePtr::~ONDXPagePtr() { if (mpPage != nullptr) mpPage->ReleaseRef(); }
inline void ONDXPagePtr::Clear()
{
if (mpPage != nullptr) {
ONDXPage * pRefObj = mpPage;
mpPage = nullptr;
pRefObj->ReleaseRef();
}
}
SvStream& WriteONDXPagePtr(SvStream &rStream, const ONDXPagePtr&);
SvStream& operator >> (SvStream &rStream, ONDXPagePtr&);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment