Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / svg / SVGPathByteStreamSource.h
index c1189bf..17ff698 100644 (file)
@@ -55,40 +55,24 @@ private:
 #if COMPILER(MSVC)
 #pragma warning(disable: 4701)
 #endif
-    template<typename DataType, typename ByteType>
+    template<typename DataType>
     DataType readType()
     {
-        ByteType data;
-        size_t typeSize = sizeof(ByteType);
-
-        for (size_t i = 0; i < typeSize; ++i) {
-            ASSERT(m_streamCurrent < m_streamEnd);
-            data.bytes[i] = *m_streamCurrent;
-            ++m_streamCurrent;
-        }
-
+        ByteType<DataType> data;
+        size_t typeSize = sizeof(ByteType<DataType>);
+        ASSERT(m_streamCurrent + typeSize <= m_streamEnd);
+        memcpy(data.bytes, m_streamCurrent, typeSize);
+        m_streamCurrent += typeSize;
         return data.value;
     }
 
-    bool readFlag()
-    {
-        return readType<bool, BoolByte>();
-    }
-
-    float readFloat()
-    {
-        return readType<float, FloatByte>();
-    }
-
-    unsigned short readSVGSegmentType()
-    {
-        return readType<unsigned short, UnsignedShortByte>();
-    }
-
+    bool readFlag() { return readType<bool>(); }
+    float readFloat() { return readType<float>(); }
+    unsigned short readSVGSegmentType() { return readType<unsigned short>(); }
     FloatPoint readFloatPoint()
     {
-        float x = readType<float, FloatByte>();
-        float y = readType<float, FloatByte>();
+        float x = readType<float>();
+        float y = readType<float>();
         return FloatPoint(x, y);
     }