diff options
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/src/fsdk_baseform.cpp | 5 | ||||
-rw-r--r-- | fpdfsdk/src/pdfwindow/PWL_Edit.cpp | 30 |
2 files changed, 21 insertions, 14 deletions
diff --git a/fpdfsdk/src/fsdk_baseform.cpp b/fpdfsdk/src/fsdk_baseform.cpp index 0cbc4baa44..9ab61843b8 100644 --- a/fpdfsdk/src/fsdk_baseform.cpp +++ b/fpdfsdk/src/fsdk_baseform.cpp @@ -2352,10 +2352,13 @@ FX_BOOL CPDFSDK_InterForm::FDFToURLEncodedData(FX_LPBYTE& pBuf, FX_STRSIZE& nBuf if(i != pFields->GetCount()-1) fdfEncodedData = fdfEncodedData<<"&"; } - + nBufSize = fdfEncodedData.GetLength(); pBuf = FX_Alloc(FX_BYTE, nBufSize); + if(!pBuf) + return FALSE; FXSYS_memcpy(pBuf, fdfEncodedData.GetBuffer(), nBufSize); + } return TRUE; } diff --git a/fpdfsdk/src/pdfwindow/PWL_Edit.cpp b/fpdfsdk/src/pdfwindow/PWL_Edit.cpp index 678da68b49..f704a67731 100644 --- a/fpdfsdk/src/pdfwindow/PWL_Edit.cpp +++ b/fpdfsdk/src/pdfwindow/PWL_Edit.cpp @@ -426,15 +426,17 @@ void CPWL_Edit::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser gsd.m_LineWidth = (FX_FLOAT)GetBorderWidth(); CFX_PathData path; - path.SetPointCount(nCharArraySafe.ValueOrDie()); - + if (!path.SetPointCount(nCharArraySafe.ValueOrDie())) { + return; + } + for (FX_INT32 i=0; i<nCharArray-1; i++) - { - path.SetPoint(i*2, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1), + { + path.SetPoint(i*2, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1), rcClient.bottom, FXPT_MOVETO); path.SetPoint(i*2+1, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1), - rcClient.top, FXPT_LINETO); - } + rcClient.top, FXPT_LINETO); + } if (path.GetPointCount() > 0) pDevice->DrawPath(&path, pUser2Device, &gsd,0, CPWL_Utils::PWLColorToFXColor(GetBorderColor(),255), FXFILL_ALTERNATE); @@ -451,17 +453,19 @@ void CPWL_Edit::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser gsd.m_DashPhase = (FX_FLOAT)GetBorderDash().nPhase; CFX_PathData path; - path.SetPointCount(nCharArraySafe.ValueOrDie()); - + if (!path.SetPointCount(nCharArraySafe.ValueOrDie())) { + return; + } + for (FX_INT32 i=0; i<nCharArray-1; i++) - { - path.SetPoint(i*2, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1), + { + path.SetPoint(i*2, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1), rcClient.bottom, FXPT_MOVETO); path.SetPoint(i*2+1, rcClient.left + ((rcClient.right - rcClient.left)/nCharArray)*(i+1), - rcClient.top, FXPT_LINETO); - } + rcClient.top, FXPT_LINETO); + } if (path.GetPointCount() > 0) - pDevice->DrawPath(&path, pUser2Device, &gsd,0, + pDevice->DrawPath(&path, pUser2Device, &gsd,0, CPWL_Utils::PWLColorToFXColor(GetBorderColor(),255), FXFILL_ALTERNATE); } break; |