From ae51c810a44844ef437393c1768be8f7766586b2 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Wed, 5 Aug 2015 12:34:06 -0700 Subject: Kill off last uses of FX_NEW in XFA. It would seem that this never merged completely. R=thestig@chromium.org Review URL: https://codereview.chromium.org/1277583002 . --- xfa/src/fee/src/fee/fde_txtedtblock.cpp | 12 +++---- xfa/src/fee/src/fee/fde_txtedtbuf.cpp | 2 +- xfa/src/fee/src/fee/fde_txtedtengine.cpp | 58 ++++++++++++++++---------------- xfa/src/fee/src/fee/fde_txtedtpage.cpp | 8 ++--- xfa/src/fee/src/fee/fde_txtedtparag.cpp | 4 +-- 5 files changed, 42 insertions(+), 42 deletions(-) (limited to 'xfa/src/fee') diff --git a/xfa/src/fee/src/fee/fde_txtedtblock.cpp b/xfa/src/fee/src/fee/fde_txtedtblock.cpp index 1af81ca9d3..d98b6eefa4 100644 --- a/xfa/src/fee/src/fee/fde_txtedtblock.cpp +++ b/xfa/src/fee/src/fee/fde_txtedtblock.cpp @@ -179,7 +179,7 @@ FX_BOOL CFDE_TxtEdtFieldFormatParser::Parse(const CFX_WideString& wsFormat) { i++; } FormatItem.nValCount = i - FormatItem.nValStart; - FDE_LPTXTEDTFORMATITEM pFormatItem = FX_NEW FDE_TXTEDTFORMATITEM; + FDE_LPTXTEDTFORMATITEM pFormatItem = new FDE_TXTEDTFORMATITEM; FXSYS_memcpy(pFormatItem, &FormatItem, sizeof(FDE_TXTEDTFORMATITEM)); m_ItemArr.Add(pFormatItem); } @@ -206,18 +206,18 @@ CFDE_TxtEdtField* CFDE_TxtEdtField::Create(const CFX_WideString& wsField, int32_t nIndex, CFDE_TxtEdtBlock* pBlock) { if (wsField[0] != L'%' || (wsField[0] == L'%' && wsField[1] == L'%')) { - return FX_NEW CFDE_TxtEdtField_Fixed(wsField, nIndex, pBlock); + return new CFDE_TxtEdtField_Fixed(wsField, nIndex, pBlock); } FX_WCHAR wcType = wsField[wsField.GetLength() - 1]; switch (wcType) { case L'd': - return FX_NEW CFDE_TxtEdtField_Integer(wsField, nIndex, pBlock); + return new CFDE_TxtEdtField_Integer(wsField, nIndex, pBlock); case L'f': - return FX_NEW CFDE_TxtEdtField_Float(wsField, nIndex, pBlock); + return new CFDE_TxtEdtField_Float(wsField, nIndex, pBlock); case L's': - return FX_NEW CFDE_TxtEdtField_String(wsField, nIndex, pBlock); + return new CFDE_TxtEdtField_String(wsField, nIndex, pBlock); case L'p': - return FX_NEW CFDE_TxtEdtField_Password(wsField, nIndex, pBlock); + return new CFDE_TxtEdtField_Password(wsField, nIndex, pBlock); default: break; } diff --git a/xfa/src/fee/src/fee/fde_txtedtbuf.cpp b/xfa/src/fee/src/fee/fde_txtedtbuf.cpp index 556b23c7b4..86ff1f3e1b 100644 --- a/xfa/src/fee/src/fee/fde_txtedtbuf.cpp +++ b/xfa/src/fee/src/fee/fde_txtedtbuf.cpp @@ -135,7 +135,7 @@ FX_BOOL CFDE_TxtEdtBufIter::IsEOF(FX_BOOL bTail) const { return bTail ? m_nIndex == (m_pBuf->GetTextLength() - 2) : m_nIndex == 0; } IFX_CharIter* CFDE_TxtEdtBufIter::Clone() { - CFDE_TxtEdtBufIter* pIter = FX_NEW CFDE_TxtEdtBufIter(m_pBuf); + CFDE_TxtEdtBufIter* pIter = new CFDE_TxtEdtBufIter(m_pBuf); pIter->m_nCurChunk = m_nCurChunk; pIter->m_nCurIndex = m_nCurIndex; pIter->m_nIndex = m_nIndex; diff --git a/xfa/src/fee/src/fee/fde_txtedtengine.cpp b/xfa/src/fee/src/fee/fde_txtedtengine.cpp index 46561dc40c..b4f206245e 100644 --- a/xfa/src/fee/src/fee/fde_txtedtengine.cpp +++ b/xfa/src/fee/src/fee/fde_txtedtengine.cpp @@ -28,7 +28,7 @@ #define FDE_TXTEDT_FORMATBLOCK_END 0xFFFB #endif IFDE_TxtEdtEngine* IFDE_TxtEdtEngine::Create() { - return FX_NEW CFDE_TxtEdtEngine(); + return new CFDE_TxtEdtEngine(); } CFDE_TxtEdtEngine::CFDE_TxtEdtEngine() : m_nPageLineCount(20), @@ -53,7 +53,7 @@ CFDE_TxtEdtEngine::CFDE_TxtEdtEngine() m_wLineEnd(FDE_UNICODE_PARAGRAPH_SPERATOR), m_bAutoLineEnd(TRUE) { FXSYS_memset(&m_rtCaret, 0, sizeof(CFX_RectF)); - m_pTxtBuf = FX_NEW CFDE_TxtEdtBuf(); + m_pTxtBuf = new CFDE_TxtEdtBuf(); m_bAutoLineEnd = (m_Param.nLineEnd == FDE_TXTEDIT_LINEEND_Auto); } CFDE_TxtEdtEngine::~CFDE_TxtEdtEngine() { @@ -486,7 +486,7 @@ int32_t CFDE_TxtEdtEngine::Insert(int32_t nStart, int32_t nNewCaret = nBgn + nCaret; if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) { IFDE_TxtEdtDoRecord* pRecord = - FX_NEW CFDE_TxtEdtDoRecord_FieldReplace( + new CFDE_TxtEdtDoRecord_FieldReplace( this, m_nCaret, nNewCaret, pField, nIndexInField, nBgn, wsDisplay.GetLength(), wsDel, CFX_WideStringC(lpText, nLength), TRUE); @@ -545,7 +545,7 @@ int32_t CFDE_TxtEdtEngine::Insert(int32_t nStart, } Replace(nBgn, nEnd - nBgn + 1, wsDisplay); if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) { - IFDE_TxtEdtDoRecord* pRecord = FX_NEW CFDE_TxtEdtDoRecord_FieldInsert( + IFDE_TxtEdtDoRecord* pRecord = new CFDE_TxtEdtDoRecord_FieldInsert( this, m_nCaret, pField, m_nCaret - nBgn, nBgn, nEnd - nBgn + 1, wsDisplay.GetLength(), CFX_WideStringC(lpText, nLength), FALSE); CFX_ByteString bsDoRecord; @@ -638,7 +638,7 @@ int32_t CFDE_TxtEdtEngine::Insert(int32_t nStart, } if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) { IFDE_TxtEdtDoRecord* pRecord = - FX_NEW CFDE_TxtEdtDoRecord_Insert(this, m_nCaret, lpBuffer, nLength); + new CFDE_TxtEdtDoRecord_Insert(this, m_nCaret, lpBuffer, nLength); CFX_ByteString bsDoRecord; pRecord->Serialize(bsDoRecord); m_Param.pEventSink->On_AddDoRecord(this, bsDoRecord); @@ -710,7 +710,7 @@ int32_t CFDE_TxtEdtEngine::Delete(int32_t nStart, FX_BOOL bBackspace) { pField->GetDisplayText(wsDisplay); Replace(nBgn, nEnd - nBgn + 1, wsDisplay); if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) { - IFDE_TxtEdtDoRecord* pRecord = FX_NEW CFDE_TxtEdtDoRecord_FieldDelete( + IFDE_TxtEdtDoRecord* pRecord = new CFDE_TxtEdtDoRecord_FieldDelete( this, nStart, pField, nCaretInField, nBgn, nEnd - nBgn + 1, wsDisplay.GetLength(), wsDel, FALSE); CFX_ByteString bsDoRecord; @@ -756,7 +756,7 @@ int32_t CFDE_TxtEdtEngine::Delete(int32_t nStart, FX_BOOL bBackspace) { CFX_WideString wsRange; m_pTxtBuf->GetRange(wsRange, nStart, nCount); IFDE_TxtEdtDoRecord* pRecord = - FX_NEW CFDE_TxtEdtDoRecord_DeleteRange(this, nStart, m_nCaret, wsRange); + new CFDE_TxtEdtDoRecord_DeleteRange(this, nStart, m_nCaret, wsRange); CFX_ByteString bsDoRecord; pRecord->Serialize(bsDoRecord); m_Param.pEventSink->On_AddDoRecord(this, bsDoRecord); @@ -855,7 +855,7 @@ void CFDE_TxtEdtEngine::SetFormatBlock(int32_t nIndex, int32_t nBlockPos = -1; FX_WCHAR wc; CFDE_TxtEdtBufIter* pIter = - FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf, FALSE); + new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf, FALSE); pIter->SetAt(0); do { wc = pIter->GetChar(); @@ -880,7 +880,7 @@ void CFDE_TxtEdtEngine::SetFormatBlock(int32_t nIndex, nBlockPos = GetTextBufLength(); } CFDE_TxtEdtBlock* pEditBlock = - FX_NEW CFDE_TxtEdtBlock(this, wsBlockFormat, nIndex); + new CFDE_TxtEdtBlock(this, wsBlockFormat, nIndex); m_BlockArray.InsertAt(m_BlockArray.GetSize(), pEditBlock); CFX_WideString wsDisplay; pEditBlock->GetDisplayText(wsDisplay); @@ -948,7 +948,7 @@ void CFDE_TxtEdtEngine::AddSelRange(int32_t nStart, int32_t nCount) { } int32_t nSize = m_SelRangePtrArr.GetSize(); if (nSize <= 0) { - FDE_LPTXTEDTSELRANGE lpSelRange = FX_NEW FDE_TXTEDTSELRANGE; + FDE_LPTXTEDTSELRANGE lpSelRange = new FDE_TXTEDTSELRANGE; lpSelRange->nStart = nStart; lpSelRange->nCount = nCount; m_SelRangePtrArr.Add(lpSelRange); @@ -958,7 +958,7 @@ void CFDE_TxtEdtEngine::AddSelRange(int32_t nStart, int32_t nCount) { FDE_LPTXTEDTSELRANGE lpTemp = NULL; lpTemp = m_SelRangePtrArr[nSize - 1]; if (nStart >= lpTemp->nStart + lpTemp->nCount) { - FDE_LPTXTEDTSELRANGE lpSelRange = FX_NEW FDE_TXTEDTSELRANGE; + FDE_LPTXTEDTSELRANGE lpSelRange = new FDE_TXTEDTSELRANGE; lpSelRange->nStart = nStart; lpSelRange->nCount = nCount; m_SelRangePtrArr.Add(lpSelRange); @@ -993,7 +993,7 @@ void CFDE_TxtEdtEngine::AddSelRange(int32_t nStart, int32_t nCount) { } } if (nRangeCnt == 0) { - FDE_LPTXTEDTSELRANGE lpSelRange = FX_NEW FDE_TXTEDTSELRANGE; + FDE_LPTXTEDTSELRANGE lpSelRange = new FDE_TXTEDTSELRANGE; lpSelRange->nStart = nStart; lpSelRange->nCount = nCount; m_SelRangePtrArr.InsertAt(nRangeBgn, lpSelRange); @@ -1131,7 +1131,7 @@ IFX_CharIter* CFDE_TxtEdtEngine::CreateCharIter() { if (!m_pTxtBuf) { return NULL; } - return FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf); + return new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf); } int32_t CFDE_TxtEdtEngine::Line2Parag(int32_t nStartParag, int32_t nStartLineofParag, @@ -1231,7 +1231,7 @@ void CFDE_TxtEdtEngine::Inner_Insert(int32_t nStart, nReserveCharStart += pParag->m_nCharCount; bFirst = FALSE; } else { - pParag = FX_NEW CFDE_TxtEdtParag(this); + pParag = new CFDE_TxtEdtParag(this); pParag->m_nLineCount = -1; pParag->m_nCharCount = i - nTextStart + 1; pParag->m_nCharStart = nReserveCharStart; @@ -1246,7 +1246,7 @@ void CFDE_TxtEdtEngine::Inner_Insert(int32_t nStart, pParag->m_nLineCount = -1; bFirst = FALSE; } else { - pParag = FX_NEW CFDE_TxtEdtParag(this); + pParag = new CFDE_TxtEdtParag(this); pParag->m_nLineCount = -1; pParag->m_nCharCount = nLength - nTextStart + nCutPart; pParag->m_nCharStart = nReserveCharStart; @@ -1294,7 +1294,7 @@ void CFDE_TxtEdtEngine::RawInsert(int32_t nStart, nReserveCharStart += pParag->m_nCharCount; bFirst = FALSE; } else { - pParag = FX_NEW CFDE_TxtEdtParag(this); + pParag = new CFDE_TxtEdtParag(this); pParag->m_nLineCount = -1; pParag->m_nCharCount = i - nTextStart + 1; pParag->m_nCharStart = nReserveCharStart; @@ -1309,7 +1309,7 @@ void CFDE_TxtEdtEngine::RawInsert(int32_t nStart, pParag->m_nLineCount = -1; bFirst = FALSE; } else { - pParag = FX_NEW CFDE_TxtEdtParag(this); + pParag = new CFDE_TxtEdtParag(this); pParag->m_nLineCount = -1; pParag->m_nCharCount = nLength - nTextStart + nCutPart; pParag->m_nCharStart = nReserveCharStart; @@ -1390,7 +1390,7 @@ void CFDE_TxtEdtEngine::DeleteRange_DoRecord(int32_t nStart, if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) { CFX_WideString wsRange; m_pTxtBuf->GetRange(wsRange, nStart, nCount); - IFDE_TxtEdtDoRecord* pRecord = FX_NEW CFDE_TxtEdtDoRecord_DeleteRange( + IFDE_TxtEdtDoRecord* pRecord = new CFDE_TxtEdtDoRecord_DeleteRange( this, nStart, m_nCaret, wsRange, bSel); CFX_ByteString bsDoRecord; pRecord->Serialize(bsDoRecord); @@ -1417,13 +1417,13 @@ void CFDE_TxtEdtEngine::RebuildParagraphs() { int32_t nCount = m_pTxtBuf->GetTextLength(); int32_t nIndex = 0; CFDE_TxtEdtParag* pParag = NULL; - IFX_CharIter* pIter = FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf); + IFX_CharIter* pIter = new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf); pIter->SetAt(0); do { wChar = pIter->GetChar(); nIndex = pIter->GetAt(); if (wChar == m_wLineEnd) { - CFDE_TxtEdtParag* pParag = FX_NEW CFDE_TxtEdtParag(this); + CFDE_TxtEdtParag* pParag = new CFDE_TxtEdtParag(this); pParag->m_nCharStart = nParagStart; pParag->m_nCharCount = nIndex - nParagStart + 1; pParag->m_nLineCount = -1; @@ -2073,7 +2073,7 @@ FX_BOOL CFDE_TxtEdtEngine::GetFieldBoundary(int32_t nIndex, int32_t& nEnd, CFDE_TxtEdtField*& pField) { CFDE_TxtEdtBufIter* pIter = - FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf, FALSE); + new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf, FALSE); pIter->SetAt(nIndex); FX_BOOL bFind = FALSE; do { @@ -2126,7 +2126,7 @@ FX_BOOL CFDE_TxtEdtEngine::FindEditableField(int32_t nIndex, wcSecond = FDE_TXTEDT_FORMATBLOCK_BGN; } CFDE_TxtEdtBufIter* pIter = - FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf, FALSE); + new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf, FALSE); pIter->SetAt(nIndex); int32_t bFind = FALSE; do { @@ -2196,7 +2196,7 @@ FX_BOOL CFDE_TxtEdtEngine::Move2NextEditableField(int32_t nIndex, } int32_t CFDE_TxtEdtEngine::GetRealIndex(int32_t nIndex) const { CFDE_TxtEdtBufIter* pIter = - FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf, FALSE); + new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)m_pTxtBuf, FALSE); pIter->SetAt(0); FX_BOOL bInField = FALSE; int32_t nFieldBgn = 0; @@ -2383,7 +2383,7 @@ void CFDE_TxtEdtEngine::DeleteSelect() { pField->GetDisplayText(wsDisplay); Replace(nBgn, nEnd - nBgn + 1, wsDisplay); if (!(m_Param.dwMode & FDE_TEXTEDITMODE_NoRedoUndo)) { - IFDE_TxtEdtDoRecord* pRecord = FX_NEW CFDE_TxtEdtDoRecord_FieldDelete( + IFDE_TxtEdtDoRecord* pRecord = new CFDE_TxtEdtDoRecord_FieldDelete( this, nSelStart, pField, nCaretInField, nBgn, nEnd - nBgn + 1, wsDisplay.GetLength(), wsDel, FALSE); CFX_ByteString bsDoRecord; @@ -2417,16 +2417,16 @@ IFDE_TxtEdtDoRecord* IFDE_TxtEdtDoRecord::Create( int32_t nType = *((int32_t*)lpBuf); switch (nType) { case FDE_TXTEDT_DORECORD_INS: - return FX_NEW CFDE_TxtEdtDoRecord_Insert(bsDoRecord); + return new CFDE_TxtEdtDoRecord_Insert(bsDoRecord); case FDE_TXTEDT_DORECORD_DEL: - return FX_NEW CFDE_TxtEdtDoRecord_DeleteRange(bsDoRecord); + return new CFDE_TxtEdtDoRecord_DeleteRange(bsDoRecord); #ifdef FDE_USEFORMATBLOCK case FDE_TXTEDT_DORECORD_FORMATINS: - return FX_NEW CFDE_TxtEdtDoRecord_FieldInsert(bsDoRecord); + return new CFDE_TxtEdtDoRecord_FieldInsert(bsDoRecord); case FDE_TXTEDT_DORECORD_FORMATDEL: - return FX_NEW CFDE_TxtEdtDoRecord_FieldDelete(bsDoRecord); + return new CFDE_TxtEdtDoRecord_FieldDelete(bsDoRecord); case FDE_TXTEDT_DORECORD_FORMATREP: - return FX_NEW CFDE_TxtEdtDoRecord_FieldReplace(bsDoRecord); + return new CFDE_TxtEdtDoRecord_FieldReplace(bsDoRecord); #endif default: break; diff --git a/xfa/src/fee/src/fee/fde_txtedtpage.cpp b/xfa/src/fee/src/fee/fde_txtedtpage.cpp index a8e91426f1..cc1013e962 100644 --- a/xfa/src/fee/src/fee/fde_txtedtpage.cpp +++ b/xfa/src/fee/src/fee/fde_txtedtpage.cpp @@ -16,7 +16,7 @@ #define FDE_TXTEDT_TOLERANCE 0.1f IFDE_TxtEdtPage* IFDE_TxtEdtPage::Create(IFDE_TxtEdtEngine* pEngine, int32_t nIndex) { - return (IFDE_TxtEdtPage*)FX_NEW CFDE_TxtEdtPage(pEngine, nIndex); + return (IFDE_TxtEdtPage*)new CFDE_TxtEdtPage(pEngine, nIndex); } CFDE_TxtEdtTextSet::CFDE_TxtEdtTextSet(CFDE_TxtEdtPage* pPage) : m_pPage(pPage) {} @@ -368,7 +368,7 @@ int32_t CFDE_TxtEdtPage::SelectWord(const CFX_PointF& fPoint, int32_t& nCount) { return -1; } IFX_WordBreak* pIter = FX_WordBreak_Create(); - pIter->Attach(FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pBuf)); + pIter->Attach(new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pBuf)); pIter->SetAt(nIndex); nCount = pIter->GetWordLength(); int32_t nRet = pIter->GetWordPos(); @@ -392,7 +392,7 @@ int32_t CFDE_TxtEdtPage::LoadPage(FX_LPCRECTF pClipBox, IFX_Pause* pPause) { if (pParams->dwMode & FDE_TEXTEDITMODE_Password) { wcAlias = m_pEditEngine->GetAliasChar(); } - m_pIter = FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pBuf, wcAlias); + m_pIter = new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pBuf, wcAlias); IFX_TxtBreak* pBreak = m_pEditEngine->GetTextBreak(); pBreak->EndBreak(FX_TXTBREAK_ParagraphBreak); pBreak->ClearBreakPieces(); @@ -425,7 +425,7 @@ int32_t CFDE_TxtEdtPage::LoadPage(FX_LPCRECTF pClipBox, IFX_Pause* pPause) { (bVertial && bLineReserve) ? (-pParams->fLineSpace) : pParams->fLineSpace; FX_FLOAT fLinePos = fLineStart; if (m_pTextSet == NULL) { - m_pTextSet = FX_NEW CFDE_TxtEdtTextSet(this); + m_pTextSet = new CFDE_TxtEdtTextSet(this); } m_PieceMassArr.RemoveAll(TRUE); FX_DWORD dwBreakStatus = FX_TXTBREAK_None; diff --git a/xfa/src/fee/src/fee/fde_txtedtparag.cpp b/xfa/src/fee/src/fee/fde_txtedtparag.cpp index 561aa2f502..9c9f5b10cd 100644 --- a/xfa/src/fee/src/fee/fde_txtedtparag.cpp +++ b/xfa/src/fee/src/fee/fde_txtedtparag.cpp @@ -37,7 +37,7 @@ void CFDE_TxtEdtParag::LoadParag() { wcAlias = m_pEngine->GetAliasChar(); } IFX_CharIter* pIter = - FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf, wcAlias); + new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf, wcAlias); pIter->SetAt(m_nCharStart); int32_t nEndIndex = m_nCharStart + m_nCharCount; CFX_ArrayTemplate LineBaseArr; @@ -102,7 +102,7 @@ void CFDE_TxtEdtParag::UnloadParag() { void CFDE_TxtEdtParag::CalcLines() { IFX_TxtBreak* pTxtBreak = m_pEngine->GetTextBreak(); IFDE_TxtEdtBuf* pTxtBuf = m_pEngine->GetTextBuf(); - IFX_CharIter* pIter = FX_NEW CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf); + IFX_CharIter* pIter = new CFDE_TxtEdtBufIter((CFDE_TxtEdtBuf*)pTxtBuf); int32_t nCount = 0; FX_DWORD dwBreakStatus = FX_TXTBREAK_None; int32_t nEndIndex = m_nCharStart + m_nCharCount; -- cgit v1.2.3