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();