]> granicus.if.org Git - pgbouncer/commitdiff
allow strcmp() and memcpy() be macros
authorMarko Kreen <markokr@gmail.com>
Mon, 26 Nov 2007 10:45:51 +0000 (10:45 +0000)
committerMarko Kreen <markokr@gmail.com>
Mon, 26 Nov 2007 10:45:51 +0000 (10:45 +0000)
include/system.h

index 411b92dbc68789a46cea25ea0b9fd06bb015d60c..1b81ba4e1c543e3fb25b9b8d6745e4296c8146ca 100644 (file)
@@ -134,12 +134,18 @@ static inline void *_inline_memcpy(void *dst_, const void *src_, size_t len)
        return dst_;
 }
 
-#define memcpy(dst, src, len) \
-       ( __builtin_constant_p(len) \
-         ? memcpy(dst, src, len) \
-         : ((__builtin_constant_p((len) < 16) && ((len) < 16)) \
-            ? _inline_memcpy(dst, src, len) \
-            : memcpy(dst, src, len)))
+static inline void *_own_memcpy(void *dst, const void *src, size_t len)
+{
+       if (!__builtin_constant_p(len)
+           && __builtin_constant_p(len < 16)
+           && len < 16)
+               return _inline_memcpy(dst, src, len);
+       else
+               return memcpy(dst, src, len);
+}
+
+#undef memcpy
+#define memcpy(d, s, n) _own_memcpy(d, s, n)
 
 #endif
 
@@ -154,6 +160,7 @@ static inline int _inline_strcmp(const char *a, const char *b)
        return strcmp(a, b);
 }
 
+#undef strcmp
 #define strcmp(a, b) _inline_strcmp(a, b)