diff --git a/fpdfsdk/include/fsdk_baseform.h b/fpdfsdk/include/fsdk_baseform.h
index 90c0238..b908efa 100644
--- a/fpdfsdk/include/fsdk_baseform.h
+++ b/fpdfsdk/include/fsdk_baseform.h
@@ -271,9 +271,10 @@
   FX_COLORREF GetHighlightColor(int nFieldType);
 
  private:
-  FX_COLORREF m_aHighlightColor[6];
+  static const int kNumFieldTypes = 6;
+  FX_COLORREF m_aHighlightColor[kNumFieldTypes];
   uint8_t m_iHighlightAlpha;
-  FX_BOOL m_bNeedHightlight[6];
+  FX_BOOL m_bNeedHightlight[kNumFieldTypes];
 };
 
 #define BAI_STRUCTURE 0
diff --git a/fpdfsdk/src/fsdk_baseform.cpp b/fpdfsdk/src/fsdk_baseform.cpp
index 9f8b35d..3a30498 100644
--- a/fpdfsdk/src/fsdk_baseform.cpp
+++ b/fpdfsdk/src/fsdk_baseform.cpp
@@ -1519,7 +1519,7 @@
   ASSERT(m_pInterForm != NULL);
   m_pInterForm->SetFormNotify(this);
 
-  for (int i = 0; i < 6; i++)
+  for (int i = 0; i < kNumFieldTypes; ++i)
     m_bNeedHightlight[i] = FALSE;
   m_iHighlightAlpha = 0;
 }
@@ -2239,20 +2239,22 @@
 }
 
 FX_BOOL CPDFSDK_InterForm::IsNeedHighLight(int nFieldType) {
-  if (nFieldType < 1 || nFieldType > 6)
+  if (nFieldType < 1 || nFieldType > kNumFieldTypes)
     return FALSE;
   return m_bNeedHightlight[nFieldType - 1];
 }
 
 void CPDFSDK_InterForm::RemoveAllHighLight() {
-  memset((void*)m_bNeedHightlight, 0, 6 * sizeof(FX_BOOL));
+  for (int i = 0; i < kNumFieldTypes; ++i)
+    m_bNeedHightlight[i] = FALSE;
 }
+
 void CPDFSDK_InterForm::SetHighlightColor(FX_COLORREF clr, int nFieldType) {
-  if (nFieldType < 0 || nFieldType > 6)
+  if (nFieldType < 0 || nFieldType > kNumFieldTypes)
     return;
   switch (nFieldType) {
     case 0: {
-      for (int i = 0; i < 6; i++) {
+      for (int i = 0; i < kNumFieldTypes; ++i) {
         m_aHighlightColor[i] = clr;
         m_bNeedHightlight[i] = TRUE;
       }
@@ -2267,7 +2269,7 @@
 }
 
 FX_COLORREF CPDFSDK_InterForm::GetHighlightColor(int nFieldType) {
-  if (nFieldType < 0 || nFieldType > 6)
+  if (nFieldType < 0 || nFieldType > kNumFieldTypes)
     return FXSYS_RGB(255, 255, 255);
   if (nFieldType == 0)
     return m_aHighlightColor[0];
