111
|
1 /* { dg-do compile } */
|
131
|
2 /* { dg-additional-options "-Wno-return-type" } */
|
111
|
3
|
|
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;
|
|
11 class pf_Frag {
|
|
12 public:
|
|
13 typedef enum _PFType { PFT_Object } PFType;
|
131
|
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(); }
|
111
|
17 };
|
|
18 class pf_Fragments {
|
|
19 public:
|
|
20 pf_Frag * getFirst() const;
|
|
21 };
|
|
22 class pt_PieceTable {
|
|
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;
|
|
26 };
|
|
27 class pf_Frag_Object : public pf_Frag
|
|
28 {
|
|
29 public:
|
|
30 virtual bool createSpecialChangeRecord(PX_ChangeRecord ** ppcr, PT_DocPosition dpos, PT_BlockOffset blockOffset) const;
|
|
31 };
|
|
32 bool pt_PieceTable::_tellAndMaybeAddListener(PL_ListenerId listenerId, bool bAdd)
|
|
33 {
|
|
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())
|
|
38 {
|
|
39 pf_Frag_Object * pfo = static_cast<pf_Frag_Object *> (pf);
|
|
40 PX_ChangeRecord * pcr = __null;
|
|
41 bool bStatus1 = false;
|
|
42 if(sfh != __null) {
|
|
43 bStatus1 = pfo->createSpecialChangeRecord(&pcr,sum,blockOffset);
|
|
44 if (!(bStatus1))
|
|
45 return (false);
|
|
46 }
|
|
47 else
|
|
48 {
|
|
49 PT_DocPosition pos = pf->getPos();
|
|
50 getStruxOfTypeFromPosition(listenerId,pos,PTX_Block,&sfh);
|
|
51 bStatus1 = pfo->createSpecialChangeRecord(&pcr,pos,blockOffset);
|
|
52 if (!(bStatus1))
|
|
53 return (false);
|
|
54 }
|
|
55 if (!(bStatus1))
|
|
56 return (false);
|
|
57 }
|
|
58 }
|