Chromium Code Reviews| Index: xfa/src/fxfa/src/fm2js/xfa_lexer.h |
| diff --git a/xfa/src/fxfa/src/fm2js/xfa_lexer.h b/xfa/src/fxfa/src/fm2js/xfa_lexer.h |
| index 85b647e46ccf13e06f76e9733f6e1cafaa08486b..361fd2627d7db3db3e1f6624570705e747d53cbe 100644 |
| --- a/xfa/src/fxfa/src/fm2js/xfa_lexer.h |
| +++ b/xfa/src/fxfa/src/fm2js/xfa_lexer.h |
| @@ -6,6 +6,9 @@ |
| #ifndef _XFA_FM_LEXER_H |
| #define _XFA_FM_LEXER_H |
| + |
| +#include <memory> |
| + |
| enum XFA_FM_TOKEN { |
| TOKand, |
| TOKlparen, |
| @@ -76,26 +79,27 @@ enum XFA_FM_TOKEN { |
| TOKnumber, |
| TOKreserver |
| }; |
| + |
| struct XFA_FMKeyword { |
| XFA_FM_TOKEN m_type; |
| uint32_t m_uHash; |
| const FX_WCHAR* m_keword; |
| }; |
| + |
| const FX_WCHAR* XFA_FM_KeywordToString(XFA_FM_TOKEN op); |
| + |
| class CXFA_FMToken { |
| public: |
| CXFA_FMToken(); |
| CXFA_FMToken(FX_DWORD uLineNum); |
|
Tom Sepez
2016/02/18 00:39:14
nit: explicit
Oliver Chang
2016/02/18 00:49:02
Done.
|
| - ~CXFA_FMToken(); |
| CFX_WideStringC m_wstring; |
| XFA_FM_TOKEN m_type; |
|
Tom Sepez
2016/02/18 00:39:14
nit: maybe blank line between methods and members,
Oliver Chang
2016/02/18 00:49:02
Done.
|
| FX_DWORD m_uLinenum; |
| - CXFA_FMToken* m_pNext; |
| }; |
| + |
| class CXFA_FMLexer { |
| public: |
| CXFA_FMLexer(const CFX_WideStringC& wsFormcalc, CXFA_FMErrorInfo* pErrorInfo); |
| - ~CXFA_FMLexer(); |
| CXFA_FMToken* NextToken(); |
| FX_DWORD Number(CXFA_FMToken* t, const FX_WCHAR* p, const FX_WCHAR*& pEnd); |
| FX_DWORD String(CXFA_FMToken* t, const FX_WCHAR* p, const FX_WCHAR*& pEnd); |
| @@ -106,10 +110,8 @@ class CXFA_FMLexer { |
| XFA_FM_TOKEN IsKeyword(const CFX_WideStringC& p); |
| void SetCurrentLine(FX_DWORD line) { m_uCurrentLine = line; } |
| void SetToken(CXFA_FMToken* pToken) { |
| - if (m_pToken) { |
| - delete m_pToken; |
| - } |
| - m_pToken = pToken; |
| + if (m_pToken.get() != pToken) |
| + m_pToken.reset(pToken); |
| } |
| const FX_WCHAR* SavePos() { return m_ptr; } |
| void RestorePos(const FX_WCHAR* pPos) { m_ptr = pPos; } |
| @@ -118,11 +120,10 @@ class CXFA_FMLexer { |
| protected: |
| CXFA_FMToken* Scan(); |
| - const FX_WCHAR* m_pScript; |
| const FX_WCHAR* m_ptr; |
| - FX_STRSIZE m_uLength; |
| FX_DWORD m_uCurrentLine; |
| - CXFA_FMToken* m_pToken; |
| + std::unique_ptr<CXFA_FMToken> m_pToken; |
| CXFA_FMErrorInfo* m_pErrorInfo; |
| }; |
| + |
| #endif |