| Index: fpdfsdk/src/fxedit/fxet_pageobjs.cpp
|
| diff --git a/fpdfsdk/src/fxedit/fxet_pageobjs.cpp b/fpdfsdk/src/fxedit/fxet_pageobjs.cpp
|
| index d54e4649dbc43daaa79548a0931edfc11f3633d3..c3bd79759b2c0edc3345a6d007bac59a57f45f5e 100644
|
| --- a/fpdfsdk/src/fxedit/fxet_pageobjs.cpp
|
| +++ b/fpdfsdk/src/fxedit/fxet_pageobjs.cpp
|
| @@ -409,10 +409,10 @@ void IFX_Edit::DrawRichEdit(CFX_RenderDevice* pDevice,
|
| pDevice->RestoreState();
|
| }
|
|
|
| -static void AddRectToPageObjects(CPDF_PageObjectHolder* pPageObjs,
|
| +static void AddRectToPageObjects(CPDF_PageObjectHolder* pObjectHolder,
|
| FX_COLORREF crFill,
|
| const CPDF_Rect& rcFill) {
|
| - CPDF_PathObject* pPathObj = new CPDF_PathObject;
|
| + std::unique_ptr<CPDF_PathObject> pPathObj(new CPDF_PathObject);
|
| CPDF_PathData* pPathData = pPathObj->m_Path.GetModify();
|
| pPathData->AppendRect(rcFill.left, rcFill.bottom, rcFill.right, rcFill.top);
|
|
|
| @@ -425,12 +425,11 @@ static void AddRectToPageObjects(CPDF_PageObjectHolder* pPageObjs,
|
|
|
| pPathObj->m_FillType = FXFILL_ALTERNATE;
|
| pPathObj->m_bStroke = FALSE;
|
| - pPageObjs->GetPageObjectList()->InsertObject(
|
| - pPageObjs->GetPageObjectList()->GetTailPosition(), pPathObj);
|
| + pObjectHolder->GetPageObjectList()->push_back(std::move(pPathObj));
|
| }
|
|
|
| static CPDF_TextObject* AddTextObjToPageObjects(
|
| - CPDF_PageObjectHolder* pPageObjs,
|
| + CPDF_PageObjectHolder* pObjectHolder,
|
| FX_COLORREF crText,
|
| CPDF_Font* pFont,
|
| FX_FLOAT fFontSize,
|
| @@ -438,8 +437,7 @@ static CPDF_TextObject* AddTextObjToPageObjects(
|
| int32_t nHorzScale,
|
| const CPDF_Point& point,
|
| const CFX_ByteString& text) {
|
| - CPDF_TextObject* pTxtObj = new CPDF_TextObject;
|
| -
|
| + std::unique_ptr<CPDF_TextObject> pTxtObj(new CPDF_TextObject);
|
| CPDF_TextStateData* pTextStateData = pTxtObj->m_TextState.GetModify();
|
| pTextStateData->m_pFont = pFont;
|
| pTextStateData->m_FontSize = fFontSize;
|
| @@ -462,14 +460,14 @@ static CPDF_TextObject* AddTextObjToPageObjects(
|
|
|
| pTxtObj->SetPosition(point.x, point.y);
|
| pTxtObj->SetText(text);
|
| - pPageObjs->GetPageObjectList()->InsertObject(
|
| - pPageObjs->GetPageObjectList()->GetTailPosition(), pTxtObj);
|
|
|
| - return pTxtObj;
|
| + CPDF_TextObject* pRet = pTxtObj.get();
|
| + pObjectHolder->GetPageObjectList()->push_back(std::move(pTxtObj));
|
| + return pRet;
|
| }
|
|
|
| void IFX_Edit::GeneratePageObjects(
|
| - CPDF_PageObjectHolder* pPageObjects,
|
| + CPDF_PageObjectHolder* pObjectHolder,
|
| IFX_Edit* pEdit,
|
| const CPDF_Point& ptOffset,
|
| const CPVT_WordRange* pRange,
|
| @@ -504,7 +502,7 @@ void IFX_Edit::GeneratePageObjects(
|
| nOldFontIndex != word.nFontIndex) {
|
| if (sTextBuf.GetLength() > 0) {
|
| ObjArray.Add(AddTextObjToPageObjects(
|
| - pPageObjects, crText, pFontMap->GetPDFFont(nOldFontIndex),
|
| + pObjectHolder, crText, pFontMap->GetPDFFont(nOldFontIndex),
|
| fFontSize, 0.0f, 100,
|
| CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
|
| sTextBuf.GetByteString()));
|
| @@ -523,7 +521,7 @@ void IFX_Edit::GeneratePageObjects(
|
|
|
| if (sTextBuf.GetLength() > 0) {
|
| ObjArray.Add(AddTextObjToPageObjects(
|
| - pPageObjects, crText, pFontMap->GetPDFFont(nOldFontIndex),
|
| + pObjectHolder, crText, pFontMap->GetPDFFont(nOldFontIndex),
|
| fFontSize, 0.0f, 100,
|
| CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
|
| sTextBuf.GetByteString()));
|
| @@ -533,7 +531,7 @@ void IFX_Edit::GeneratePageObjects(
|
| }
|
|
|
| void IFX_Edit::GenerateRichPageObjects(
|
| - CPDF_PageObjectHolder* pPageObjects,
|
| + CPDF_PageObjectHolder* pObjectHolder,
|
| IFX_Edit* pEdit,
|
| const CPDF_Point& ptOffset,
|
| const CPVT_WordRange* pRange,
|
| @@ -574,7 +572,7 @@ void IFX_Edit::GenerateRichPageObjects(
|
| crOld != crCurText) {
|
| if (sTextBuf.GetLength() > 0) {
|
| ObjArray.Add(AddTextObjToPageObjects(
|
| - pPageObjects, crOld, pFontMap->GetPDFFont(wp.nFontIndex),
|
| + pObjectHolder, crOld, pFontMap->GetPDFFont(wp.nFontIndex),
|
| wp.fFontSize, wp.fCharSpace, wp.nHorzScale,
|
| CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
|
| sTextBuf.GetByteString()));
|
| @@ -597,7 +595,7 @@ void IFX_Edit::GenerateRichPageObjects(
|
| rcUnderline.top += ptOffset.y;
|
| rcUnderline.bottom += ptOffset.y;
|
|
|
| - AddRectToPageObjects(pPageObjects, crCurText, rcUnderline);
|
| + AddRectToPageObjects(pObjectHolder, crCurText, rcUnderline);
|
| }
|
|
|
| if (word.WordProps.nWordStyle & PVTWORD_STYLE_CROSSOUT) {
|
| @@ -607,7 +605,7 @@ void IFX_Edit::GenerateRichPageObjects(
|
| rcCrossout.top += ptOffset.y;
|
| rcCrossout.bottom += ptOffset.y;
|
|
|
| - AddRectToPageObjects(pPageObjects, crCurText, rcCrossout);
|
| + AddRectToPageObjects(pObjectHolder, crCurText, rcCrossout);
|
| }
|
|
|
| oldplace = place;
|
| @@ -616,7 +614,7 @@ void IFX_Edit::GenerateRichPageObjects(
|
|
|
| if (sTextBuf.GetLength() > 0) {
|
| ObjArray.Add(AddTextObjToPageObjects(
|
| - pPageObjects, crOld, pFontMap->GetPDFFont(wp.nFontIndex),
|
| + pObjectHolder, crOld, pFontMap->GetPDFFont(wp.nFontIndex),
|
| wp.fFontSize, wp.fCharSpace, wp.nHorzScale,
|
| CPDF_Point(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y),
|
| sTextBuf.GetByteString()));
|
| @@ -625,7 +623,7 @@ void IFX_Edit::GenerateRichPageObjects(
|
| }
|
| }
|
|
|
| -void IFX_Edit::GenerateUnderlineObjects(CPDF_PageObjectHolder* pPageObjects,
|
| +void IFX_Edit::GenerateUnderlineObjects(CPDF_PageObjectHolder* pObjectHolder,
|
| IFX_Edit* pEdit,
|
| const CPDF_Point& ptOffset,
|
| const CPVT_WordRange* pRange,
|
| @@ -651,7 +649,7 @@ void IFX_Edit::GenerateUnderlineObjects(CPDF_PageObjectHolder* pPageObjects,
|
| rcUnderline.right += ptOffset.x;
|
| rcUnderline.top += ptOffset.y;
|
| rcUnderline.bottom += ptOffset.y;
|
| - AddRectToPageObjects(pPageObjects, color, rcUnderline);
|
| + AddRectToPageObjects(pObjectHolder, color, rcUnderline);
|
| }
|
| }
|
| }
|
|
|