You can't do it this way, you need a union. This will break some compiler's strict aliasing.
-- Tom. On 23/09/15 08:49, Carsten Haitzler (Rasterman) wrote: > raster pushed a commit to branch master. > > http://git.enlightenment.org/apps/rage.git/commit/?id=1d492a68475d9d3c387691445dbeaacafd92a384 > > commit 1d492a68475d9d3c387691445dbeaacafd92a384 > Author: Carsten Haitzler (Rasterman) <[email protected]> > Date: Wed Sep 23 16:48:41 2015 +0900 > > rage - avoid htonl due to windows issues - makes things simpler > --- > src/bin/sha1.c | 22 +++++++++++++++------- > 1 file changed, 15 insertions(+), 7 deletions(-) > > diff --git a/src/bin/sha1.c b/src/bin/sha1.c > index 94661c3..84a943b 100644 > --- a/src/bin/sha1.c > +++ b/src/bin/sha1.c > @@ -1,8 +1,16 @@ > -#include <string.h> > -#include <arpa/inet.h> > +#include <Eina.h> > > #define SHSH(n, v) ((((v) << (n)) & 0xffffffff) | ((v) >> (32 - (n)))) > > +static inline int > +int_to_bigendian(int in) > +{ > + static const unsigned char test[4] = { 0x11, 0x22, 0x33, 0x44 }; > + static const unsigned int *test_i = (const unsigned int *)test; > + if (test_i[0] == 0x44332211) return eina_swap32(in); > + return in; > +} > + > int > sha1(unsigned char *data, int size, unsigned char *dst) > { > @@ -85,11 +93,11 @@ sha1(unsigned char *data, int size, unsigned char *dst) > } > } > > - t = htonl(digest[0]); digest[0] = t; > - t = htonl(digest[1]); digest[1] = t; > - t = htonl(digest[2]); digest[2] = t; > - t = htonl(digest[3]); digest[3] = t; > - t = htonl(digest[4]); digest[4] = t; > + t = int_to_bigendian(digest[0]); digest[0] = t; > + t = int_to_bigendian(digest[1]); digest[1] = t; > + t = int_to_bigendian(digest[2]); digest[2] = t; > + t = int_to_bigendian(digest[3]); digest[3] = t; > + t = int_to_bigendian(digest[4]); digest[4] = t; > > memcpy(dst, digest, 5 * 4); > return 1; > ------------------------------------------------------------------------------ Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
