diff --git a/core/include/fpdfdoc/fpdf_doc.h b/core/include/fpdfdoc/fpdf_doc.h
index fd85fda..9b86e0e 100644
--- a/core/include/fpdfdoc/fpdf_doc.h
+++ b/core/include/fpdfdoc/fpdf_doc.h
@@ -553,10 +553,9 @@
 
   static uint8_t GetNativeCharSet();
 
-  static CPDF_Font* AddNativeFont(uint8_t iCharSet,
-                                  const CPDF_Document* pDocument);
+  static CPDF_Font* AddNativeFont(uint8_t iCharSet, CPDF_Document* pDocument);
 
-  static CPDF_Font* AddNativeFont(const CPDF_Document* pDocument);
+  static CPDF_Font* AddNativeFont(CPDF_Document* pDocument);
 
   FX_BOOL ValidateFieldName(CFX_WideString& csNewFieldName, int iType);
 
diff --git a/core/src/fpdfdoc/doc_form.cpp b/core/src/fpdfdoc/doc_form.cpp
index 421f02f..93d4fcb 100644
--- a/core/src/fpdfdoc/doc_form.cpp
+++ b/core/src/fpdfdoc/doc_form.cpp
@@ -506,34 +506,28 @@
   return 0;
 #endif
 }
+
 CPDF_Font* CPDF_InterForm::AddNativeFont(uint8_t charSet,
-                                         const CPDF_Document* pDocument) {
-  if (pDocument == NULL) {
-    return NULL;
-  }
-  CPDF_Font* pFont = NULL;
+                                         CPDF_Document* pDocument) {
+  if (!pDocument)
+    return nullptr;
+
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
   LOGFONTA lf;
   CFX_ByteString csFontName = GetNativeFont(charSet, &lf);
   if (!csFontName.IsEmpty()) {
-    if (csFontName == "Helvetica") {
-      pFont = AddStandardFont(pDocument, csFontName);
-    } else {
-      pFont = ((CPDF_Document*)pDocument)->AddWindowsFont(&lf, FALSE, TRUE);
-    }
+    if (csFontName == "Helvetica")
+      return pFont = AddStandardFont(pDocument, csFontName);
+    return pDocument->AddWindowsFont(&lf, FALSE, TRUE);
   }
 #endif
-  return pFont;
+  return nullptr;
 }
-CPDF_Font* CPDF_InterForm::AddNativeFont(const CPDF_Document* pDocument) {
-  if (pDocument == NULL) {
-    return NULL;
-  }
-  CPDF_Font* pFont = NULL;
-  uint8_t charSet = GetNativeCharSet();
-  pFont = AddNativeFont(charSet, pDocument);
-  return pFont;
+
+CPDF_Font* CPDF_InterForm::AddNativeFont(CPDF_Document* pDocument) {
+  return pDocument ? AddNativeFont(GetNativeCharSet(), pDocument) : nullptr;
 }
+
 FX_BOOL CPDF_InterForm::ValidateFieldName(
     CFX_WideString& csNewFieldName,
     int iType,
