]> granicus.if.org Git - php/commitdiff
MFZE1
authorSterling Hughes <sterling@php.net>
Mon, 13 May 2002 14:38:42 +0000 (14:38 +0000)
committerSterling Hughes <sterling@php.net>
Mon, 13 May 2002 14:38:42 +0000 (14:38 +0000)
Zend/zend_qsort.c

index eba5b55d9a72dad4d2a6c33a41e7c8f4c50c57df..778333e792c4c7a415da6726532e1d6a6bc2458f 100644 (file)
@@ -16,6 +16,8 @@
    +----------------------------------------------------------------------+
 */
 
+/* $Id$ */
+
 #include "zend.h"
 
 #include <limits.h>
 
 static void _zend_qsort_swap(void *a, void *b, size_t siz)
 {
+       register char  *tmp_a_char;
+       register char  *tmp_b_char;
+       register int   *tmp_a_int;
+       register int   *tmp_b_int;
        register size_t i;
-       register int    t_i;
-       register char   t_c;
-       
+       int             t_i;
+       char            t_c;
+
+       tmp_a_int = (int *) a;
+       tmp_b_int = (int *) b;
+
        for (i = sizeof(int); i <= siz; i += sizeof(int)) {
-               t_i = *(int *) a;
-               *((int *) a)++ = *(int *) b;
-               *((int *) b)++ = t_i;
+               t_i = *tmp_a_int;
+               *tmp_a_int++ = *tmp_b_int;
+               *tmp_b_int++ = t_i;
        }
 
+       tmp_a_char = (char *) tmp_a_int;
+       tmp_b_char = (char *) tmp_b_int;
+
        for (i = i - sizeof(int) + 1; i <= siz; ++i) {
-               t_c = *(char *) a;
-               *((char *) a)++ = *(char *) b;
-               *((char *) b)++ = t_c;
+               t_c = *tmp_a_char;
+               *tmp_a_char++ = *tmp_b_char;
+               *tmp_b_char++ = t_c;
        }
 }
 
@@ -104,3 +116,12 @@ ZEND_API void zend_qsort(void *base, size_t nmemb, size_t siz, compare_func_t co
                }
        }
 }
+
+/* 
+ * Local Variables:
+ * c-basic-offset: 4 
+ * tab-width: 4
+ * End:
+ * vim600: fdm=marker
+ * vim: noet sw=4 ts=4
+ */