| Index: xfa/fgas/layout/fgas_rtfbreak.h
 | 
| diff --git a/xfa/fgas/layout/fgas_rtfbreak.h b/xfa/fgas/layout/fgas_rtfbreak.h
 | 
| index 83d83a6c4539561d0aff0b54d64ea843c3c12f2c..993dc50f979e9de5d9e102819b105e2f8203ef9c 100644
 | 
| --- a/xfa/fgas/layout/fgas_rtfbreak.h
 | 
| +++ b/xfa/fgas/layout/fgas_rtfbreak.h
 | 
| @@ -64,20 +64,7 @@ class CFGAS_GEFont;
 | 
|  #define FX_RTFLINEALIGNMENT_HigherMask 0x0C
 | 
|  
 | 
|  struct FX_RTFTEXTOBJ {
 | 
| -  FX_RTFTEXTOBJ() {
 | 
| -    pStr = NULL;
 | 
| -    pWidths = NULL;
 | 
| -    iLength = 0;
 | 
| -    pFont = NULL;
 | 
| -    fFontSize = 12.0f;
 | 
| -    dwLayoutStyles = 0;
 | 
| -    iCharRotation = 0;
 | 
| -    iBidiLevel = 0;
 | 
| -    pRect = NULL;
 | 
| -    wLineBreakChar = L'\n';
 | 
| -    iHorizontalScale = 100;
 | 
| -    iVerticalScale = 100;
 | 
| -  }
 | 
| +  FX_RTFTEXTOBJ();
 | 
|  
 | 
|    const FX_WCHAR* pStr;
 | 
|    int32_t* pWidths;
 | 
| @@ -95,23 +82,9 @@ struct FX_RTFTEXTOBJ {
 | 
|  
 | 
|  class CFX_RTFPiece : public CFX_Target {
 | 
|   public:
 | 
| -  CFX_RTFPiece()
 | 
| -      : m_dwStatus(FX_RTFBREAK_PieceBreak),
 | 
| -        m_iStartPos(0),
 | 
| -        m_iWidth(-1),
 | 
| -        m_iStartChar(0),
 | 
| -        m_iChars(0),
 | 
| -        m_iBidiLevel(0),
 | 
| -        m_iBidiPos(0),
 | 
| -        m_iFontSize(0),
 | 
| -        m_iFontHeight(0),
 | 
| -        m_iHorizontalScale(100),
 | 
| -        m_iVerticalScale(100),
 | 
| -        m_dwLayoutStyles(0),
 | 
| -        m_dwIdentity(0),
 | 
| -        m_pChars(NULL),
 | 
| -        m_pUserData(NULL) {}
 | 
| -  ~CFX_RTFPiece() { Reset(); }
 | 
| +  CFX_RTFPiece();
 | 
| +  ~CFX_RTFPiece() override;
 | 
| +
 | 
|    void AppendChar(const CFX_RTFChar& tc) {
 | 
|      ASSERT(m_pChars != NULL);
 | 
|      m_pChars->Add(tc);
 | 
| @@ -171,6 +144,7 @@ class CFX_RTFPiece : public CFX_Target {
 | 
|      m_iHorizontalScale = 100;
 | 
|      m_iVerticalScale = 100;
 | 
|    }
 | 
| +
 | 
|    uint32_t m_dwStatus;
 | 
|    int32_t m_iStartPos;
 | 
|    int32_t m_iWidth;
 | 
| @@ -187,17 +161,14 @@ class CFX_RTFPiece : public CFX_Target {
 | 
|    CFX_RTFCharArray* m_pChars;
 | 
|    IFX_Retainable* m_pUserData;
 | 
|  };
 | 
| +
 | 
|  typedef CFX_BaseArrayTemplate<CFX_RTFPiece> CFX_RTFPieceArray;
 | 
|  
 | 
|  class CFX_RTFLine {
 | 
|   public:
 | 
| -  CFX_RTFLine()
 | 
| -      : m_LinePieces(16),
 | 
| -        m_iStart(0),
 | 
| -        m_iWidth(0),
 | 
| -        m_iArabicChars(0),
 | 
| -        m_iMBCSChars(0) {}
 | 
| -  ~CFX_RTFLine() { RemoveAll(); }
 | 
| +  CFX_RTFLine();
 | 
| +  ~CFX_RTFLine();
 | 
| +
 | 
|    int32_t CountChars() const { return m_LineChars.GetSize(); }
 | 
|    CFX_RTFChar& GetChar(int32_t index) {
 | 
|      ASSERT(index > -1 && index < m_LineChars.GetSize());
 | 
| @@ -233,6 +204,7 @@ class CFX_RTFLine {
 | 
|      m_iArabicChars = 0;
 | 
|      m_iMBCSChars = 0;
 | 
|    }
 | 
| +
 | 
|    CFX_RTFCharArray m_LineChars;
 | 
|    CFX_RTFPieceArray m_LinePieces;
 | 
|    int32_t m_iStart;
 | 
| @@ -290,6 +262,30 @@ class CFX_RTFBreak {
 | 
|    uint32_t AppendChar_Others(CFX_RTFChar* pCurChar, int32_t iRotation);
 | 
|  
 | 
|   protected:
 | 
| +  int32_t GetLineRotation(uint32_t dwStyles) const;
 | 
| +  void SetBreakStatus();
 | 
| +  CFX_RTFChar* GetLastChar(int32_t index) const;
 | 
| +  CFX_RTFLine* GetRTFLine(FX_BOOL bReady) const;
 | 
| +  CFX_RTFPieceArray* GetRTFPieces(FX_BOOL bReady) const;
 | 
| +  FX_CHARTYPE GetUnifiedCharType(FX_CHARTYPE chartype) const;
 | 
| +  int32_t GetLastPositionedTab() const;
 | 
| +  FX_BOOL GetPositionedTab(int32_t& iTabPos) const;
 | 
| +
 | 
| +  int32_t GetBreakPos(CFX_RTFCharArray& tca,
 | 
| +                      int32_t& iEndPos,
 | 
| +                      FX_BOOL bAllChars = FALSE,
 | 
| +                      FX_BOOL bOnlyBrk = FALSE);
 | 
| +  void SplitTextLine(CFX_RTFLine* pCurLine,
 | 
| +                     CFX_RTFLine* pNextLine,
 | 
| +                     FX_BOOL bAllChars = FALSE);
 | 
| +  FX_BOOL EndBreak_SplitLine(CFX_RTFLine* pNextLine,
 | 
| +                             FX_BOOL bAllChars,
 | 
| +                             uint32_t dwStatus);
 | 
| +  void EndBreak_BidiLine(CFX_TPOArray& tpos, uint32_t dwStatus);
 | 
| +  void EndBreak_Alignment(CFX_TPOArray& tpos,
 | 
| +                          FX_BOOL bAllChars,
 | 
| +                          uint32_t dwStatus);
 | 
| +
 | 
|    uint32_t m_dwPolicies;
 | 
|    int32_t m_iBoundaryStart;
 | 
|    int32_t m_iBoundaryEnd;
 | 
| @@ -325,28 +321,6 @@ class CFX_RTFBreak {
 | 
|    CFX_RTFLine* m_pCurLine;
 | 
|    int32_t m_iReady;
 | 
|    int32_t m_iTolerance;
 | 
| -  int32_t GetLineRotation(uint32_t dwStyles) const;
 | 
| -  void SetBreakStatus();
 | 
| -  CFX_RTFChar* GetLastChar(int32_t index) const;
 | 
| -  CFX_RTFLine* GetRTFLine(FX_BOOL bReady) const;
 | 
| -  CFX_RTFPieceArray* GetRTFPieces(FX_BOOL bReady) const;
 | 
| -  FX_CHARTYPE GetUnifiedCharType(FX_CHARTYPE chartype) const;
 | 
| -  int32_t GetLastPositionedTab() const;
 | 
| -  FX_BOOL GetPositionedTab(int32_t& iTabPos) const;
 | 
| -  int32_t GetBreakPos(CFX_RTFCharArray& tca,
 | 
| -                      int32_t& iEndPos,
 | 
| -                      FX_BOOL bAllChars = FALSE,
 | 
| -                      FX_BOOL bOnlyBrk = FALSE);
 | 
| -  void SplitTextLine(CFX_RTFLine* pCurLine,
 | 
| -                     CFX_RTFLine* pNextLine,
 | 
| -                     FX_BOOL bAllChars = FALSE);
 | 
| -  FX_BOOL EndBreak_SplitLine(CFX_RTFLine* pNextLine,
 | 
| -                             FX_BOOL bAllChars,
 | 
| -                             uint32_t dwStatus);
 | 
| -  void EndBreak_BidiLine(CFX_TPOArray& tpos, uint32_t dwStatus);
 | 
| -  void EndBreak_Alignment(CFX_TPOArray& tpos,
 | 
| -                          FX_BOOL bAllChars,
 | 
| -                          uint32_t dwStatus);
 | 
|  };
 | 
|  
 | 
|  #endif  // XFA_FGAS_LAYOUT_FGAS_RTFBREAK_H_
 | 
| 
 |