Change enum CPDF_IconFit::ScaleMethod to follow the style guide.
Along the way, convert it to an enum class and make improvements in
many of the places that interact with it.
Bug: pdfium:547
Change-Id: I3fda50af91a7047c476da2ab5553146c466c2bdd
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/70741
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
diff --git a/core/fpdfdoc/cpdf_iconfit.cpp b/core/fpdfdoc/cpdf_iconfit.cpp
index 55702a3..36e19da 100644
--- a/core/fpdfdoc/cpdf_iconfit.cpp
+++ b/core/fpdfdoc/cpdf_iconfit.cpp
@@ -24,16 +24,16 @@
CPDF_IconFit::ScaleMethod CPDF_IconFit::GetScaleMethod() const {
if (!m_pDict)
- return Always;
+ return ScaleMethod::kAlways;
ByteString csSW = m_pDict->GetStringFor("SW", "A");
if (csSW == "B")
- return Bigger;
+ return ScaleMethod::kBigger;
if (csSW == "S")
- return Smaller;
+ return ScaleMethod::kSmaller;
if (csSW == "N")
- return Never;
- return Always;
+ return ScaleMethod::kNever;
+ return ScaleMethod::kAlways;
}
bool CPDF_IconFit::IsProportionalScale() const {
diff --git a/core/fpdfdoc/cpdf_iconfit.h b/core/fpdfdoc/cpdf_iconfit.h
index 86a4918..8840980 100644
--- a/core/fpdfdoc/cpdf_iconfit.h
+++ b/core/fpdfdoc/cpdf_iconfit.h
@@ -15,7 +15,7 @@
class CPDF_IconFit {
public:
- enum ScaleMethod { Always = 0, Bigger, Smaller, Never };
+ enum class ScaleMethod { kAlways = 0, kBigger, kSmaller, kNever };
explicit CPDF_IconFit(const CPDF_Dictionary* pDict);
CPDF_IconFit(const CPDF_IconFit& that);
diff --git a/fpdfsdk/pwl/cpwl_icon.cpp b/fpdfsdk/pwl/cpwl_icon.cpp
index 67df09e..bade072 100644
--- a/fpdfsdk/pwl/cpwl_icon.cpp
+++ b/fpdfsdk/pwl/cpwl_icon.cpp
@@ -53,35 +53,35 @@
CFX_SizeF image_size = GetImageSize();
float fImageWidth = image_size.width;
float fImageHeight = image_size.height;
- int32_t nScaleMethod = m_pIconFit ? m_pIconFit->GetScaleMethod() : 0;
+ CPDF_IconFit::ScaleMethod scale_method =
+ m_pIconFit ? m_pIconFit->GetScaleMethod()
+ : CPDF_IconFit::ScaleMethod::kAlways;
- switch (nScaleMethod) {
- default:
- case 0:
+ switch (scale_method) {
+ case CPDF_IconFit::ScaleMethod::kAlways:
fHScale = fPlateWidth / std::max(fImageWidth, 1.0f);
fVScale = fPlateHeight / std::max(fImageHeight, 1.0f);
break;
- case 1:
+ case CPDF_IconFit::ScaleMethod::kBigger:
if (fPlateWidth < fImageWidth)
fHScale = fPlateWidth / std::max(fImageWidth, 1.0f);
if (fPlateHeight < fImageHeight)
fVScale = fPlateHeight / std::max(fImageHeight, 1.0f);
break;
- case 2:
+ case CPDF_IconFit::ScaleMethod::kSmaller:
if (fPlateWidth > fImageWidth)
fHScale = fPlateWidth / std::max(fImageWidth, 1.0f);
if (fPlateHeight > fImageHeight)
fVScale = fPlateHeight / std::max(fImageHeight, 1.0f);
break;
- case 3:
+ case CPDF_IconFit::ScaleMethod::kNever:
break;
}
- float fMinScale;
if (m_pIconFit && m_pIconFit->IsProportionalScale()) {
- fMinScale = std::min(fHScale, fVScale);
- fHScale = fMinScale;
- fVScale = fMinScale;
+ float min_scale = std::min(fHScale, fVScale);
+ fHScale = min_scale;
+ fVScale = min_scale;
}
return {fHScale, fVScale};
}
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp
index 8830dff..7483ee0 100644
--- a/fxjs/cjs_field.cpp
+++ b/fxjs/cjs_field.cpp
@@ -880,21 +880,19 @@
return CJS_Result::Failure(JSMessage::kBadObjectError);
CPDF_IconFit IconFit = pFormControl->GetIconFit();
- int ScaleM = IconFit.GetScaleMethod();
- switch (ScaleM) {
- case CPDF_IconFit::Always:
+ CPDF_IconFit::ScaleMethod scale_method = IconFit.GetScaleMethod();
+ switch (scale_method) {
+ case CPDF_IconFit::ScaleMethod::kAlways:
+ case CPDF_IconFit::ScaleMethod::kBigger:
+ case CPDF_IconFit::ScaleMethod::kNever:
+ case CPDF_IconFit::ScaleMethod::kSmaller:
return CJS_Result::Success(
- pRuntime->NewNumber(static_cast<int32_t>(CPDF_IconFit::Always)));
- case CPDF_IconFit::Bigger:
- return CJS_Result::Success(
- pRuntime->NewNumber(static_cast<int32_t>(CPDF_IconFit::Bigger)));
- case CPDF_IconFit::Never:
- return CJS_Result::Success(
- pRuntime->NewNumber(static_cast<int32_t>(CPDF_IconFit::Never)));
- case CPDF_IconFit::Smaller:
- return CJS_Result::Success(
- pRuntime->NewNumber(static_cast<int32_t>(CPDF_IconFit::Smaller)));
+ pRuntime->NewNumber(static_cast<int>(scale_method)));
}
+
+ // Note this is deliberately not the default case for the switch statement
+ // above, so missing cases trigger compile time errors.
+ NOTREACHED();
return CJS_Result::Success();
}