]> granicus.if.org Git - graphviz/commitdiff
remove micro-optimization in MEMCPY
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 31 May 2020 21:07:38 +0000 (14:07 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 6 Jun 2020 00:34:31 +0000 (17:34 -0700)
This optimization for short memcpys can be performed by the compiler and/or libc
these days. Related to #1723.

lib/sfio/sfhdr.h

index 7ebb4acce05d00b8b702ef34cdfc6973718819e8..265b6952620ddb8226d1abb870d1f6241fae1c94 100644 (file)
@@ -735,16 +735,7 @@ extern "C" {
 
 /* note that MEMCPY advances the associated pointers */
 #define MEMCPY(to,fr,n) \
-       switch(n) \
-       { default : memcpy((void*)to,(void*)fr,n); to += n; fr += n; break; \
-         case  7 : *to++ = *fr++; \
-         case  6 : *to++ = *fr++; \
-         case  5 : *to++ = *fr++; \
-         case  4 : *to++ = *fr++; \
-         case  3 : *to++ = *fr++; \
-         case  2 : *to++ = *fr++; \
-         case  1 : *to++ = *fr++; \
-       }
+       do { memcpy((void*)to,(void*)fr,n); to += n; fr += n; } while (0)
 
     extern Sfextern_t _Sfextern;
     extern Sftab_t _Sftable;