Make LineCap and LineJoin enum classes
-- validate public arguments against public constants.
Change-Id: Ibfc16a08f01815b6e1efe73f669d1714436926e5
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/84410
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fpdfsdk/fpdf_editpage.cpp b/fpdfsdk/fpdf_editpage.cpp
index 49671c4..32bddf1 100644
--- a/fpdfsdk/fpdf_editpage.cpp
+++ b/fpdfsdk/fpdf_editpage.cpp
@@ -849,7 +849,7 @@
FPDF_EXPORT int FPDF_CALLCONV
FPDFPageObj_GetLineJoin(FPDF_PAGEOBJECT page_object) {
auto* pPageObj = CPDFPageObjectFromFPDFPageObject(page_object);
- return pPageObj ? pPageObj->m_GraphState.GetLineJoin() : -1;
+ return pPageObj ? static_cast<int>(pPageObj->m_GraphState.GetLineJoin()) : -1;
}
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
@@ -858,11 +858,7 @@
if (!pPageObj)
return false;
- constexpr int kLineJoinMiter =
- static_cast<int>(CFX_GraphStateData::LineJoin::LineJoinMiter);
- constexpr int kLineJoinBevel =
- static_cast<int>(CFX_GraphStateData::LineJoin::LineJoinBevel);
- if (line_join < kLineJoinMiter || line_join > kLineJoinBevel)
+ if (line_join < FPDF_LINEJOIN_MITER || line_join > FPDF_LINEJOIN_BEVEL)
return false;
pPageObj->m_GraphState.SetLineJoin(
@@ -874,7 +870,7 @@
FPDF_EXPORT int FPDF_CALLCONV
FPDFPageObj_GetLineCap(FPDF_PAGEOBJECT page_object) {
auto* pPageObj = CPDFPageObjectFromFPDFPageObject(page_object);
- return pPageObj ? pPageObj->m_GraphState.GetLineCap() : -1;
+ return pPageObj ? static_cast<int>(pPageObj->m_GraphState.GetLineCap()) : -1;
}
FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV
@@ -883,13 +879,10 @@
if (!pPageObj)
return false;
- constexpr int kLineCapButt =
- static_cast<int>(CFX_GraphStateData::LineCap::LineCapButt);
- constexpr int kLineCapSquare =
- static_cast<int>(CFX_GraphStateData::LineCap::LineCapSquare);
- if (line_cap < kLineCapButt || line_cap > kLineCapSquare)
+ if (line_cap < FPDF_LINECAP_BUTT ||
+ line_cap > FPDF_LINECAP_PROJECTING_SQUARE) {
return false;
-
+ }
pPageObj->m_GraphState.SetLineCap(
static_cast<CFX_GraphStateData::LineCap>(line_cap));
pPageObj->SetDirty(true);