summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>2010-06-01 19:35:49 +0100
committerAndreas Ericsson <ae@op5.se>2010-06-02 11:18:56 +0200
commitc1b62b2eded035d22584c427487503335f519d4c (patch)
treeb5e02a3b76c602bcd6230826850672f828e67d23
parent6e0fa05b58c140a42ef25dc74041e30f25772b2c (diff)
downloadlibgit2-c1b62b2eded035d22584c427487503335f519d4c.tar.gz
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>
-rw-r--r--src/revobject.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/revobject.c b/src/revobject.c
index 7b6c856c6..5130f2343 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)