Merge pull request #980 from rintaro/newtype-comparable

diff --git a/CoreFoundation/NumberDate.subproj/CFNumber.c b/CoreFoundation/NumberDate.subproj/CFNumber.c
index d83eef8..868e5e1 100644
--- a/CoreFoundation/NumberDate.subproj/CFNumber.c
+++ b/CoreFoundation/NumberDate.subproj/CFNumber.c
@@ -1205,7 +1205,8 @@
 	}
     }
 
-    CFIndex size = 8 + ((!__CFNumberTypeTable[type].floatBit && __CFNumberTypeTable[type].storageBit) ? 8 : 0);
+    CFIndex size = sizeof(struct __CFNumber) - sizeof(CFRuntimeBase);
+    if (!__CFNumberTypeTable[type].floatBit && __CFNumberTypeTable[type].storageBit) size += 8;
 #if OLD_CRAP_TOO
     size += 2 * sizeof(void *);
 #endif