]> granicus.if.org Git - php/commitdiff
Remove dubious memcmp optimization in iconv
authorNikita Popov <nikita.ppv@gmail.com>
Fri, 12 Apr 2019 13:10:17 +0000 (15:10 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Fri, 12 Apr 2019 13:12:45 +0000 (15:12 +0200)
This violates strict aliasing, and appears entirely unnecessary --
the compiler can optimize fixed size memcmp's by itself.

ext/iconv/iconv.c

index 0e85a5c3b3663f9b11dcd8769638a48faf3afad9..62f7cb3af14974c1c075a5c3bf2f5766f343c136 100644 (file)
@@ -55,7 +55,7 @@
 #include "ext/standard/quot_print.h"
 
 #define _php_iconv_memequal(a, b, c) \
-  ((c) == sizeof(zend_ulong) ? *((zend_ulong *)(a)) == *((zend_ulong *)(b)) : ((c) == sizeof(unsigned int) ? *((unsigned int *)(a)) == *((unsigned int *)(b)) : memcmp(a, b, c) == 0))
+       (memcmp(a, b, c) == 0)
 
 /* {{{ arginfo */
 ZEND_BEGIN_ARG_INFO_EX(arginfo_iconv_strlen, 0, 0, 1)