]> granicus.if.org Git - php/commitdiff
fix macros for bigendian platforms
authorAntony Dovgal <tony2001@php.net>
Tue, 6 Feb 2007 21:43:46 +0000 (21:43 +0000)
committerAntony Dovgal <tony2001@php.net>
Tue, 6 Feb 2007 21:43:46 +0000 (21:43 +0000)
ext/phar/phar.c

index d6eb1f0c6291c8472b96e291bca1df901b306c25..90f113cb66176baafe8665df0f0bcad6b20a3f4e 100644 (file)
@@ -525,14 +525,14 @@ phar_entry_data *phar_get_or_create_entry_data(char *fname, int fname_len, char
 
 #ifdef WORDS_BIGENDIAN
 # define PHAR_GET_32(buffer, var) \
-       var = ((unsigned char)(buffer)[3]) << 24 \
-               + ((unsigned char)(buffer)[2]) << 16 \
-               + ((unsigned char)(buffer)[1]) <<  8 \
-               + ((unsigned char)(buffer)[0]); \
+       var = ((((unsigned char*)(buffer))[3]) << 24) \
+               | ((((unsigned char*)(buffer))[2]) << 16) \
+               | ((((unsigned char*)(buffer))[1]) <<  8) \
+               | (((unsigned char*)(buffer))[0]); \
        (buffer) += 4
 # define PHAR_GET_16(buffer, var) \
-       var = ((unsigned char)(buffer)[1]) <<  8 \
-               + ((unsigned char)(buffer)[0]); \
+       var = ((((unsigned char*)(buffer))[1]) <<  8) \
+               | (((unsigned char*)(buffer))[0]); \
        (buffer) += 2
 #else
 # define PHAR_GET_32(buffer, var) \