lottie/vector: added unique(), refCount() and null() api to vpath class. 13/194113/2
authorsubhransu mohanty <sub.mohanty@samsung.com>
Thu, 29 Nov 2018 06:36:11 +0000 (15:36 +0900)
committerSubhransu Mohanty <sub.mohanty@samsung.com>
Thu, 29 Nov 2018 08:06:24 +0000 (08:06 +0000)
Change-Id: Iff4ad6a37760b885ab390afe0b7748c924a646be

src/vector/vcowptr.h
src/vector/vpath.h

index 64aa554964cfaeed90c12ff7915b0893dfea3056..39a16e4e3760996e115f49e1dcb84d0e43a3fe44 100644 (file)
@@ -67,6 +67,13 @@ public:
 
     auto operator-> () const noexcept -> const element_type* { return &read(); }
 
+    int refCount() const noexcept
+    {
+        assert(mModel);
+
+        return mModel->mRef;
+    }
+
     bool unique() const noexcept
     {
         assert(mModel);
index bc743169bbe9c5998dba4429e070c4e8be403480..8cec2d744bd6f90d19920bb768f38d2c3569aac9 100644 (file)
@@ -15,6 +15,7 @@ public:
 
     enum class Element : uchar { MoveTo, LineTo, CubicTo, Close };
     bool  empty() const;
+    bool  null() const;
     void  moveTo(const VPointF &p);
     void  moveTo(float x, float y);
     void  lineTo(const VPointF &p);
@@ -49,10 +50,13 @@ public:
     const std::vector<VPath::Element> &elements() const;
     const std::vector<VPointF> &       points() const;
     void  clone(const VPath &srcPath);
+    bool unique() const { return d.unique();}
+    int refCount() const { return d.refCount();}
 
 private:
     struct VPathData {
         bool  empty() const { return m_elements.empty(); }
+        bool  null() const { return empty() && !m_elements.capacity();}
         void  moveTo(float x, float y);
         void  lineTo(float x, float y);
         void  cubicTo(float cx1, float cy1, float cx2, float cy2, float ex, float ey);
@@ -99,6 +103,14 @@ inline bool VPath::empty() const
     return d->empty();
 }
 
+/*
+ * path is empty as well as null(no memory for data allocated yet).
+ */
+inline bool VPath::null() const
+{
+    return d->null();
+}
+
 inline void VPath::moveTo(const VPointF &p)
 {
     d.write().moveTo(p.x(), p.y());