diff --git a/core/fpdfdoc/cpvt_wordrange.h b/core/fpdfdoc/cpvt_wordrange.h
index 5426154..fbc691f 100644
--- a/core/fpdfdoc/cpvt_wordrange.h
+++ b/core/fpdfdoc/cpvt_wordrange.h
@@ -14,42 +14,13 @@
 #include "core/fxcrt/fx_system.h"
 
 struct CPVT_WordRange {
-  CPVT_WordRange() {}
+  CPVT_WordRange() = default;
 
   CPVT_WordRange(const CPVT_WordPlace& begin, const CPVT_WordPlace& end)
       : BeginPos(begin), EndPos(end) {
     Normalize();
   }
 
-  void Reset() {
-    BeginPos.Reset();
-    EndPos.Reset();
-  }
-
-  void Set(const CPVT_WordPlace& begin, const CPVT_WordPlace& end) {
-    BeginPos = begin;
-    EndPos = end;
-    Normalize();
-  }
-
-  void SetBeginPos(const CPVT_WordPlace& begin) {
-    BeginPos = begin;
-    Normalize();
-  }
-
-  void SetEndPos(const CPVT_WordPlace& end) {
-    EndPos = end;
-    Normalize();
-  }
-
-  CPVT_WordRange Intersect(const CPVT_WordRange& that) const {
-    if (that.EndPos < BeginPos || that.BeginPos > EndPos)
-      return CPVT_WordRange();
-
-    return CPVT_WordRange(std::max(BeginPos, that.BeginPos),
-                          std::min(EndPos, that.EndPos));
-  }
-
   inline bool IsEmpty() const { return BeginPos == EndPos; }
   inline bool operator==(const CPVT_WordRange& wr) const {
     return wr.BeginPos == BeginPos && wr.EndPos == EndPos;
diff --git a/fpdfsdk/pwl/cpwl_edit.cpp b/fpdfsdk/pwl/cpwl_edit.cpp
index 59fb921..6126bfd 100644
--- a/fpdfsdk/pwl/cpwl_edit.cpp
+++ b/fpdfsdk/pwl/cpwl_edit.cpp
@@ -631,8 +631,6 @@
 CPVT_WordRange CPWL_Edit::GetSameWordsRange(const CPVT_WordPlace& place,
                                             bool bLatin,
                                             bool bArabic) const {
-  CPVT_WordRange range;
-
   CPWL_EditImpl_Iterator* pIterator = m_pEdit->GetIterator();
   CPVT_Word wordinfo;
   CPVT_WordPlace wpStart(place), wpEnd(place);
@@ -676,6 +674,5 @@
     } while (pIterator->PrevWord());
   }
 
-  range.Set(wpStart, wpEnd);
-  return range;
+  return CPVT_WordRange(wpStart, wpEnd);
 }
