Micro-optimise Length::initFromLength

This appears to improve html5-full-render by 1-2% on my system (gcc 4.6.3) by using memcpy instead of copying members (and branching to copy the union).

R=eseidel@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/14283003

git-svn-id: svn://svn.chromium.org/blink/trunk@148621 bbb929c8-8fbe-4397-9dbb-9b2b20218538
diff --git a/Source/core/platform/Length.h b/Source/core/platform/Length.h
index 9e95cf8..12c4902 100644
--- a/Source/core/platform/Length.h
+++ b/Source/core/platform/Length.h
@@ -30,6 +30,7 @@
 #include <wtf/HashMap.h>
 #include <wtf/MathExtras.h>
 #include <wtf/PassOwnArrayPtr.h>
+#include <cstring>
 
 namespace WebCore {
 
@@ -283,15 +284,8 @@
     }
     void initFromLength(const Length &length) 
     {
-        m_quirk = length.m_quirk;
-        m_type = length.m_type;
-        m_isFloat = length.m_isFloat;
-        
-        if (m_isFloat)
-            m_floatValue = length.m_floatValue;
-        else
-            m_intValue = length.m_intValue;
-        
+        memcpy(this, &length, sizeof(Length));
+
         if (isCalculated())
             incrementCalculatedRef();
     }