Rename CFX_CountRef to CFX_SharedCopyOnWrite

Avoid confusing this class with other ref-counted objects.

Review-Url: https://codereview.chromium.org/2426673002
diff --git a/BUILD.gn b/BUILD.gn
index f87201c..952575e 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -681,9 +681,9 @@
 
 static_library("fxcrt") {
   sources = [
-    "core/fxcrt/cfx_count_ref.h",
     "core/fxcrt/cfx_observable.h",
     "core/fxcrt/cfx_retain_ptr.h",
+    "core/fxcrt/cfx_shared_copy_on_write.h",
     "core/fxcrt/cfx_string_c_template.h",
     "core/fxcrt/cfx_string_data_template.h",
     "core/fxcrt/cfx_string_pool_template.h",
@@ -1652,9 +1652,9 @@
     "core/fpdftext/fpdf_text_int_unittest.cpp",
     "core/fxcodec/codec/fx_codec_jpx_unittest.cpp",
     "core/fxcodec/jbig2/JBig2_Image_unittest.cpp",
-    "core/fxcrt/cfx_count_ref_unittest.cpp",
     "core/fxcrt/cfx_observable_unittest.cpp",
     "core/fxcrt/cfx_retain_ptr_unittest.cpp",
+    "core/fxcrt/cfx_shared_copy_on_write_unittest.cpp",
     "core/fxcrt/cfx_string_pool_template_unittest.cpp",
     "core/fxcrt/cfx_weak_ptr_unittest.cpp",
     "core/fxcrt/fx_basic_bstring_unittest.cpp",
diff --git a/core/fpdfapi/page/cpdf_clippath.h b/core/fpdfapi/page/cpdf_clippath.h
index 25fc386..dd44cb2 100644
--- a/core/fpdfapi/page/cpdf_clippath.h
+++ b/core/fpdfapi/page/cpdf_clippath.h
@@ -12,7 +12,7 @@
 #include <vector>
 
 #include "core/fpdfapi/page/cpdf_path.h"
-#include "core/fxcrt/cfx_count_ref.h"
+#include "core/fxcrt/cfx_shared_copy_on_write.h"
 #include "core/fxcrt/fx_basic.h"
 #include "core/fxcrt/fx_coordinates.h"
 
@@ -57,7 +57,7 @@
     std::vector<std::unique_ptr<CPDF_TextObject>> m_TextList;
   };
 
-  CFX_CountRef<PathData> m_Ref;
+  CFX_SharedCopyOnWrite<PathData> m_Ref;
 };
 
 #endif  // CORE_FPDFAPI_PAGE_CPDF_CLIPPATH_H_
diff --git a/core/fpdfapi/page/cpdf_colorstate.h b/core/fpdfapi/page/cpdf_colorstate.h
index 916abed..49c71b6 100644
--- a/core/fpdfapi/page/cpdf_colorstate.h
+++ b/core/fpdfapi/page/cpdf_colorstate.h
@@ -8,7 +8,7 @@
 #define CORE_FPDFAPI_PAGE_CPDF_COLORSTATE_H_
 
 #include "core/fpdfapi/page/cpdf_color.h"
-#include "core/fxcrt/cfx_count_ref.h"
+#include "core/fxcrt/cfx_shared_copy_on_write.h"
 #include "core/fxcrt/fx_basic.h"
 #include "core/fxcrt/fx_system.h"
 
@@ -71,7 +71,7 @@
                 FX_FLOAT* pValue,
                 uint32_t nValues);
 
-  CFX_CountRef<ColorData> m_Ref;
+  CFX_SharedCopyOnWrite<ColorData> m_Ref;
 };
 
 #endif  // CORE_FPDFAPI_PAGE_CPDF_COLORSTATE_H_
diff --git a/core/fpdfapi/page/cpdf_contentmark.h b/core/fpdfapi/page/cpdf_contentmark.h
index 9d137fa..485fe3b 100644
--- a/core/fpdfapi/page/cpdf_contentmark.h
+++ b/core/fpdfapi/page/cpdf_contentmark.h
@@ -10,7 +10,7 @@
 #include <vector>
 
 #include "core/fpdfapi/page/cpdf_contentmarkitem.h"
-#include "core/fxcrt/cfx_count_ref.h"
+#include "core/fxcrt/cfx_shared_copy_on_write.h"
 #include "core/fxcrt/fx_basic.h"
 #include "core/fxcrt/fx_system.h"
 
@@ -58,7 +58,7 @@
     std::vector<CPDF_ContentMarkItem> m_Marks;
   };
 
-  CFX_CountRef<MarkData> m_Ref;
+  CFX_SharedCopyOnWrite<MarkData> m_Ref;
 };
 
 #endif  // CORE_FPDFAPI_PAGE_CPDF_CONTENTMARK_H_
diff --git a/core/fpdfapi/page/cpdf_generalstate.h b/core/fpdfapi/page/cpdf_generalstate.h
index 8c6b062..5211c52 100644
--- a/core/fpdfapi/page/cpdf_generalstate.h
+++ b/core/fpdfapi/page/cpdf_generalstate.h
@@ -103,7 +103,7 @@
     FX_FLOAT m_Smoothness;
   };
 
-  CFX_CountRef<StateData> m_Ref;
+  CFX_SharedCopyOnWrite<StateData> m_Ref;
 };
 
 #endif  // CORE_FPDFAPI_PAGE_CPDF_GENERALSTATE_H_
diff --git a/core/fpdfapi/page/cpdf_path.h b/core/fpdfapi/page/cpdf_path.h
index 6322f08..d69672a 100644
--- a/core/fpdfapi/page/cpdf_path.h
+++ b/core/fpdfapi/page/cpdf_path.h
@@ -7,7 +7,7 @@
 #ifndef CORE_FPDFAPI_PAGE_CPDF_PATH_H_
 #define CORE_FPDFAPI_PAGE_CPDF_PATH_H_
 
-#include "core/fxcrt/cfx_count_ref.h"
+#include "core/fxcrt/cfx_shared_copy_on_write.h"
 #include "core/fxcrt/fx_system.h"
 #include "core/fxge/cfx_fxgedevice.h"
 #include "core/fxge/cfx_pathdata.h"
@@ -44,7 +44,7 @@
   const CFX_PathData* GetObject() const { return m_Ref.GetObject(); }
 
  private:
-  CFX_CountRef<CFX_PathData> m_Ref;
+  CFX_SharedCopyOnWrite<CFX_PathData> m_Ref;
 };
 
 #endif  // CORE_FPDFAPI_PAGE_CPDF_PATH_H_
diff --git a/core/fpdfapi/page/cpdf_textstate.h b/core/fpdfapi/page/cpdf_textstate.h
index e76e376..4723469 100644
--- a/core/fpdfapi/page/cpdf_textstate.h
+++ b/core/fpdfapi/page/cpdf_textstate.h
@@ -7,7 +7,7 @@
 #ifndef CORE_FPDFAPI_PAGE_CPDF_TEXTSTATE_H_
 #define CORE_FPDFAPI_PAGE_CPDF_TEXTSTATE_H_
 
-#include "core/fxcrt/cfx_count_ref.h"
+#include "core/fxcrt/cfx_shared_copy_on_write.h"
 #include "core/fxcrt/fx_basic.h"
 
 class CPDF_Document;
@@ -81,7 +81,7 @@
     FX_FLOAT m_CTM[4];
   };
 
-  CFX_CountRef<TextData> m_Ref;
+  CFX_SharedCopyOnWrite<TextData> m_Ref;
 };
 
 bool SetTextRenderingModeFromInt(int iMode, TextRenderingMode* mode);
diff --git a/core/fxcrt/cfx_count_ref.h b/core/fxcrt/cfx_shared_copy_on_write.h
similarity index 78%
rename from core/fxcrt/cfx_count_ref.h
rename to core/fxcrt/cfx_shared_copy_on_write.h
index 3b9ccff..cd6cf6a 100644
--- a/core/fxcrt/cfx_count_ref.h
+++ b/core/fxcrt/cfx_shared_copy_on_write.h
@@ -4,8 +4,8 @@
 
 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 
-#ifndef CORE_FXCRT_CFX_COUNT_REF_H_
-#define CORE_FXCRT_CFX_COUNT_REF_H_
+#ifndef CORE_FXCRT_CFX_SHARED_COPY_ON_WRITE_H_
+#define CORE_FXCRT_CFX_SHARED_COPY_ON_WRITE_H_
 
 #include "core/fxcrt/cfx_retain_ptr.h"
 #include "core/fxcrt/fx_system.h"
@@ -13,11 +13,12 @@
 // A shared object with Copy on Write semantics that makes it appear as
 // if each one were independent.
 template <class ObjClass>
-class CFX_CountRef {
+class CFX_SharedCopyOnWrite {
  public:
-  CFX_CountRef() {}
-  CFX_CountRef(const CFX_CountRef& other) : m_pObject(other.m_pObject) {}
-  ~CFX_CountRef() {}
+  CFX_SharedCopyOnWrite() {}
+  CFX_SharedCopyOnWrite(const CFX_SharedCopyOnWrite& other)
+      : m_pObject(other.m_pObject) {}
+  ~CFX_SharedCopyOnWrite() {}
 
   template <typename... Args>
   ObjClass* Emplace(Args... params) {
@@ -25,7 +26,7 @@
     return m_pObject.Get();
   }
 
-  CFX_CountRef& operator=(const CFX_CountRef& that) {
+  CFX_SharedCopyOnWrite& operator=(const CFX_SharedCopyOnWrite& that) {
     if (*this != that)
       m_pObject = that.m_pObject;
     return *this;
@@ -43,10 +44,12 @@
     return m_pObject.Get();
   }
 
-  bool operator==(const CFX_CountRef& that) const {
+  bool operator==(const CFX_SharedCopyOnWrite& that) const {
     return m_pObject == that.m_pObject;
   }
-  bool operator!=(const CFX_CountRef& that) const { return !(*this == that); }
+  bool operator!=(const CFX_SharedCopyOnWrite& that) const {
+    return !(*this == that);
+  }
   explicit operator bool() const { return !!m_pObject; }
 
  private:
@@ -78,4 +81,4 @@
   CFX_RetainPtr<CountedObj> m_pObject;
 };
 
-#endif  // CORE_FXCRT_CFX_COUNT_REF_H_
+#endif  // CORE_FXCRT_CFX_SHARED_COPY_ON_WRITE_H_
diff --git a/core/fxcrt/cfx_count_ref_unittest.cpp b/core/fxcrt/cfx_shared_copy_on_write_unittest.cpp
similarity index 83%
rename from core/fxcrt/cfx_count_ref_unittest.cpp
rename to core/fxcrt/cfx_shared_copy_on_write_unittest.cpp
index 6ab5632..b0205d8 100644
--- a/core/fxcrt/cfx_count_ref_unittest.cpp
+++ b/core/fxcrt/cfx_shared_copy_on_write_unittest.cpp
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "core/fxcrt/cfx_count_ref.h"
+#include "core/fxcrt/cfx_shared_copy_on_write.h"
 
 #include <map>
 #include <string>
@@ -46,26 +46,26 @@
 
 }  // namespace
 
-TEST(fxcrt, CountRefNull) {
+TEST(fxcrt, SharedCopyOnWriteNull) {
   Observer observer;
   {
-    CFX_CountRef<Object> ptr;
+    CFX_SharedCopyOnWrite<Object> ptr;
     EXPECT_EQ(nullptr, ptr.GetObject());
   }
 }
 
-TEST(fxcrt, CountRefCopy) {
+TEST(fxcrt, SharedCopyOnWriteCopy) {
   Observer observer;
   {
-    CFX_CountRef<Object> ptr1;
+    CFX_SharedCopyOnWrite<Object> ptr1;
     ptr1.Emplace(&observer, std::string("one"));
     {
-      CFX_CountRef<Object> ptr2 = ptr1;
+      CFX_SharedCopyOnWrite<Object> ptr2 = ptr1;
       EXPECT_EQ(1, observer.GetConstructionCount("one"));
       EXPECT_EQ(0, observer.GetDestructionCount("one"));
     }
     {
-      CFX_CountRef<Object> ptr3(ptr1);
+      CFX_SharedCopyOnWrite<Object> ptr3(ptr1);
       EXPECT_EQ(1, observer.GetConstructionCount("one"));
       EXPECT_EQ(0, observer.GetDestructionCount("one"));
     }
@@ -75,10 +75,10 @@
   EXPECT_EQ(1, observer.GetDestructionCount("one"));
 }
 
-TEST(fxcrt, CountRefAssignOverOld) {
+TEST(fxcrt, SharedCopyOnWriteAssignOverOld) {
   Observer observer;
   {
-    CFX_CountRef<Object> ptr1;
+    CFX_SharedCopyOnWrite<Object> ptr1;
     ptr1.Emplace(&observer, std::string("one"));
     ptr1.Emplace(&observer, std::string("two"));
     EXPECT_EQ(1, observer.GetConstructionCount("one"));
@@ -89,12 +89,12 @@
   EXPECT_EQ(1, observer.GetDestructionCount("two"));
 }
 
-TEST(fxcrt, CountRefAssignOverRetained) {
+TEST(fxcrt, SharedCopyOnWriteAssignOverRetained) {
   Observer observer;
   {
-    CFX_CountRef<Object> ptr1;
+    CFX_SharedCopyOnWrite<Object> ptr1;
     ptr1.Emplace(&observer, std::string("one"));
-    CFX_CountRef<Object> ptr2(ptr1);
+    CFX_SharedCopyOnWrite<Object> ptr2(ptr1);
     ptr1.Emplace(&observer, std::string("two"));
     EXPECT_EQ(1, observer.GetConstructionCount("one"));
     EXPECT_EQ(1, observer.GetConstructionCount("two"));
@@ -105,10 +105,10 @@
   EXPECT_EQ(1, observer.GetDestructionCount("two"));
 }
 
-TEST(fxcrt, CountRefGetModify) {
+TEST(fxcrt, SharedCopyOnWriteGetModify) {
   Observer observer;
   {
-    CFX_CountRef<Object> ptr;
+    CFX_SharedCopyOnWrite<Object> ptr;
     EXPECT_NE(nullptr, ptr.GetPrivateCopy(&observer, std::string("one")));
     EXPECT_EQ(1, observer.GetConstructionCount("one"));
     EXPECT_EQ(0, observer.GetDestructionCount("one"));
@@ -117,7 +117,7 @@
     EXPECT_EQ(1, observer.GetConstructionCount("one"));
     EXPECT_EQ(0, observer.GetDestructionCount("one"));
     {
-      CFX_CountRef<Object> other(ptr);
+      CFX_SharedCopyOnWrite<Object> other(ptr);
       EXPECT_NE(nullptr, ptr.GetPrivateCopy(&observer, std::string("one")));
       EXPECT_EQ(2, observer.GetConstructionCount("one"));
       EXPECT_EQ(0, observer.GetDestructionCount("one"));
diff --git a/core/fxge/cfx_graphstate.h b/core/fxge/cfx_graphstate.h
index 19cd03c..a838dfc 100644
--- a/core/fxge/cfx_graphstate.h
+++ b/core/fxge/cfx_graphstate.h
@@ -7,7 +7,7 @@
 #ifndef CORE_FXGE_CFX_GRAPHSTATE_H_
 #define CORE_FXGE_CFX_GRAPHSTATE_H_
 
-#include "core/fxcrt/cfx_count_ref.h"
+#include "core/fxcrt/cfx_shared_copy_on_write.h"
 #include "core/fxge/cfx_graphstatedata.h"
 
 class CPDF_Array;
@@ -38,7 +38,7 @@
   const CFX_GraphStateData* GetObject() const { return m_Ref.GetObject(); }
 
  private:
-  CFX_CountRef<CFX_GraphStateData> m_Ref;
+  CFX_SharedCopyOnWrite<CFX_GraphStateData> m_Ref;
 };
 
 #endif  // CORE_FXGE_CFX_GRAPHSTATE_H_
diff --git a/core/fxge/fx_dib.h b/core/fxge/fx_dib.h
index 038d103..6ffad8c 100644
--- a/core/fxge/fx_dib.h
+++ b/core/fxge/fx_dib.h
@@ -10,7 +10,7 @@
 #include <memory>
 #include <vector>
 
-#include "core/fxcrt/cfx_count_ref.h"
+#include "core/fxcrt/cfx_shared_copy_on_write.h"
 #include "core/fxcrt/fx_basic.h"
 #include "core/fxcrt/fx_coordinates.h"
 
@@ -389,7 +389,7 @@
   std::unique_ptr<CFX_DIBitmap> m_pBitmap;
 };
 
-typedef CFX_CountRef<CFX_DIBitmap> CFX_DIBitmapRef;
+typedef CFX_SharedCopyOnWrite<CFX_DIBitmap> CFX_DIBitmapRef;
 
 class CFX_FilteredDIB : public CFX_DIBSource {
  public: