Fix a "dereference of type-punned pointer" compiler warning gcc (4.4.0) issues the following warning: src/revobject.c:33: warning: dereferencing type-punned pointer \ will break strict-aliasing rules We suppress the warning by copying the first 4 bytes from the oid structure into an 'unsigned int' using memcpy(). This will also fix any potential alignment issues on certain platforms. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Andreas Ericsson <ae@op5.se>
diff --git a/src/revobject.c b/src/revobject.c
index 7b6c856..5130f23 100644
--- a/src/revobject.c
+++ b/src/revobject.c
@@ -30,7 +30,9 @@ static const double max_load_factor = 0.65;
static unsigned int git_revpool_table__hash(const git_oid *id)
{
- return *((unsigned int *)id->id);
+ unsigned int r;
+ memcpy(&r, id->id, sizeof(r));
+ return r;
}
git_revpool_table *git_revpool_table_create(unsigned int min_size)