diff --git a/core/fpdfapi/fpdf_parser/cpdf_reference.cpp b/core/fpdfapi/fpdf_parser/cpdf_reference.cpp
index 06625a9..4f826dc 100644
--- a/core/fpdfapi/fpdf_parser/cpdf_reference.cpp
+++ b/core/fpdfapi/fpdf_parser/cpdf_reference.cpp
@@ -67,6 +67,11 @@
   return new CPDF_Reference(m_pObjList, m_RefObjNum);
 }
 
+CPDF_Object* CPDF_Reference::SafeGetDirect() const {
+  CPDF_Object* obj = GetDirect();
+  return (obj && !obj->IsReference()) ? obj : nullptr;
+}
+
 void CPDF_Reference::SetRef(CPDF_IndirectObjectHolder* pDoc, uint32_t objnum) {
   m_pObjList = pDoc;
   m_RefObjNum = objnum;
diff --git a/core/fpdfapi/fpdf_parser/cpdf_reference.h b/core/fpdfapi/fpdf_parser/cpdf_reference.h
index af52f90..1322b97 100644
--- a/core/fpdfapi/fpdf_parser/cpdf_reference.h
+++ b/core/fpdfapi/fpdf_parser/cpdf_reference.h
@@ -25,8 +25,6 @@
   FX_FLOAT GetNumber() const override;
   int GetInteger() const override;
   CPDF_Dictionary* GetDict() const override;
-
-  // TODO(weili): check whether GetUnicodeText() and GetArray() are needed.
   bool IsReference() const override;
   CPDF_Reference* AsReference() override;
   const CPDF_Reference* AsReference() const override;
@@ -38,15 +36,12 @@
 
  protected:
   ~CPDF_Reference() override;
+
   CPDF_Object* CloneNonCyclic(
       bool bDirect,
       std::set<const CPDF_Object*>* pVisited) const override;
-  CPDF_Object* SafeGetDirect() const {
-    CPDF_Object* obj = GetDirect();
-    if (!obj || obj->IsReference())
-      return nullptr;
-    return obj;
-  }
+
+  CPDF_Object* SafeGetDirect() const;
 
   CPDF_IndirectObjectHolder* m_pObjList;
   uint32_t m_RefObjNum;
