Make CPDF_StreamContentParser::ContentParam::Type an enum class. Fix comparisons against ints. Change-Id: Ibd80ff4942426cfa33cdcc333ae7077097cd5c34 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/82015 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp index 99444e5..b298456 100644 --- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp +++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -286,7 +286,7 @@ if (m_ParamStartPos == kParamBufSize) { m_ParamStartPos = 0; } - if (m_ParamBuf[m_ParamStartPos].m_Type == ContentParam::kObject) + if (m_ParamBuf[m_ParamStartPos].m_Type == ContentParam::Type::kObject) m_ParamBuf[m_ParamStartPos].m_pObject.Reset(); return m_ParamStartPos; @@ -301,26 +301,26 @@ void CPDF_StreamContentParser::AddNameParam(ByteStringView bsName) { ContentParam& param = m_ParamBuf[GetNextParamPos()]; - param.m_Type = ContentParam::kName; + param.m_Type = ContentParam::Type::kName; param.m_Name = PDF_NameDecode(bsName); } void CPDF_StreamContentParser::AddNumberParam(ByteStringView str) { ContentParam& param = m_ParamBuf[GetNextParamPos()]; - param.m_Type = ContentParam::kNumber; + param.m_Type = ContentParam::Type::kNumber; param.m_Number = FX_Number(str); } void CPDF_StreamContentParser::AddObjectParam(RetainPtr<CPDF_Object> pObj) { ContentParam& param = m_ParamBuf[GetNextParamPos()]; - param.m_Type = ContentParam::kObject; + param.m_Type = ContentParam::Type::kObject; param.m_pObject = std::move(pObj); } void CPDF_StreamContentParser::ClearAllParams() { uint32_t index = m_ParamStartPos; for (uint32_t i = 0; i < m_ParamCount; i++) { - if (m_ParamBuf[index].m_Type == ContentParam::kObject) + if (m_ParamBuf[index].m_Type == ContentParam::Type::kObject) m_ParamBuf[index].m_pObject.Reset(); index++; if (index == kParamBufSize) @@ -339,20 +339,20 @@ real_index -= kParamBufSize; } ContentParam& param = m_ParamBuf[real_index]; - if (param.m_Type == ContentParam::kNumber) { - param.m_Type = ContentParam::kObject; + if (param.m_Type == ContentParam::Type::kNumber) { + param.m_Type = ContentParam::Type::kObject; param.m_pObject = param.m_Number.IsInteger() ? pdfium::MakeRetain<CPDF_Number>(param.m_Number.GetSigned()) : pdfium::MakeRetain<CPDF_Number>(param.m_Number.GetFloat()); return param.m_pObject.Get(); } - if (param.m_Type == ContentParam::kName) { - param.m_Type = ContentParam::kObject; + if (param.m_Type == ContentParam::Type::kName) { + param.m_Type = ContentParam::Type::kObject; param.m_pObject = m_pDocument->New<CPDF_Name>(param.m_Name); return param.m_pObject.Get(); } - if (param.m_Type == ContentParam::kObject) + if (param.m_Type == ContentParam::Type::kObject) return param.m_pObject.Get(); NOTREACHED(); @@ -368,10 +368,10 @@ real_index -= kParamBufSize; const ContentParam& param = m_ParamBuf[real_index]; - if (param.m_Type == ContentParam::kName) + if (param.m_Type == ContentParam::Type::kName) return param.m_Name; - if (param.m_Type == 0 && param.m_pObject) + if (param.m_Type == ContentParam::Type::kObject && param.m_pObject) return param.m_pObject->GetString(); return ByteString(); @@ -386,10 +386,10 @@ real_index -= kParamBufSize; const ContentParam& param = m_ParamBuf[real_index]; - if (param.m_Type == ContentParam::kNumber) + if (param.m_Type == ContentParam::Type::kNumber) return param.m_Number.GetFloat(); - if (param.m_Type == 0 && param.m_pObject) + if (param.m_Type == ContentParam::Type::kObject && param.m_pObject) return param.m_pObject->GetNumber(); return 0;
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.h b/core/fpdfapi/page/cpdf_streamcontentparser.h index b179d3e..dba9496 100644 --- a/core/fpdfapi/page/cpdf_streamcontentparser.h +++ b/core/fpdfapi/page/cpdf_streamcontentparser.h
@@ -71,7 +71,7 @@ enum class RenderType : bool { kFill = false, kStroke = true }; struct ContentParam { - enum Type : uint8_t { kObject = 0, kNumber, kName }; + enum class Type : uint8_t { kObject = 0, kNumber, kName }; ContentParam(); ~ContentParam();