1 /* { dg-do compile } */
2 /* { dg-additional-options "-Wno-return-type" } */
4 typedef unsigned int UT_uint32;
5 typedef UT_uint32 PT_DocPosition;
6 typedef UT_uint32 PT_BlockOffset;
7 typedef enum _PTStruxType { PTX_Block } PTStruxType;
8 typedef UT_uint32 PL_ListenerId;
9 typedef const void * PL_StruxFmtHandle;
10 class PX_ChangeRecord;
13 typedef enum _PFType { PFT_Object } PFType;
14 inline PFType getType(void) const { return PFType(); }
15 inline pf_Frag * getNext(void) const { return 0; }
16 PT_DocPosition getPos(void) const { return PT_DocPosition(); }
20 pf_Frag * getFirst() const;
23 bool getStruxOfTypeFromPosition(PL_ListenerId listenerId, PT_DocPosition docPos, PTStruxType pts, PL_StruxFmtHandle * psfh) const;
24 bool _tellAndMaybeAddListener(PL_ListenerId listenerId, bool bAdd);
25 pf_Fragments m_fragments;
27 class pf_Frag_Object : public pf_Frag
30 virtual bool createSpecialChangeRecord(PX_ChangeRecord ** ppcr, PT_DocPosition dpos, PT_BlockOffset blockOffset) const;
32 bool pt_PieceTable::_tellAndMaybeAddListener(PL_ListenerId listenerId, bool bAdd)
34 PL_StruxFmtHandle sfh = 0;
35 PT_DocPosition sum = 0;
36 UT_uint32 blockOffset = 0;
37 for (pf_Frag * pf = m_fragments.getFirst(); (pf); pf=pf->getNext())
39 pf_Frag_Object * pfo = static_cast<pf_Frag_Object *> (pf);
40 PX_ChangeRecord * pcr = __null;
41 bool bStatus1 = false;
43 bStatus1 = pfo->createSpecialChangeRecord(&pcr,sum,blockOffset);
49 PT_DocPosition pos = pf->getPos();
50 getStruxOfTypeFromPosition(listenerId,pos,PTX_Block,&sfh);
51 bStatus1 = pfo->createSpecialChangeRecord(&pcr,pos,blockOffset);