From 2cf7d700b18d785a3beafe8809375011a69c55b6 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@esi-group.com>
Date: Fri, 15 Mar 2019 10:03:12 +0100
Subject: [PATCH] COMP: use intptr_t instead of long for hashing pointers

---
 src/OpenFOAM/primitives/hashes/Hash/Hash.H | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/OpenFOAM/primitives/hashes/Hash/Hash.H b/src/OpenFOAM/primitives/hashes/Hash/Hash.H
index 51c687ef6d..575bae9208 100644
--- a/src/OpenFOAM/primitives/hashes/Hash/Hash.H
+++ b/src/OpenFOAM/primitives/hashes/Hash/Hash.H
@@ -2,7 +2,7 @@
   =========                 |
   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
    \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 2004-2010, 2018 OpenCFD Ltd.
+    \\  /    A nd           | Copyright (C) 2004-2010, 2018-2019 OpenCFD Ltd.
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
                             | Copyright (C) 2011-2012 OpenFOAM Foundation
@@ -51,10 +51,10 @@ namespace Foam
                             Class Hash Declaration
 \*---------------------------------------------------------------------------*/
 
-template<class PrimitiveType>
+template<class T>
 struct Hash
 {
-    inline unsigned operator()(const PrimitiveType& obj, unsigned seed=0) const
+    inline unsigned operator()(const T& obj, unsigned seed=0) const
     {
         return Hasher(&obj, sizeof(obj), seed);
     }
@@ -140,19 +140,18 @@ struct Hash<Foam::keyType>
 };
 
 
-//- Hash specialization for pointers.
-//  Interpret pointer as a long (works for 32-bit and 64-bit pointers).
+//- Hash specialization for pointers, interpret pointer as a integer type.
 template<>
 struct Hash<void*>
 {
     inline unsigned operator()(const void* const& obj, unsigned seed) const
     {
-        return Hash<long>()(long(obj), seed);
+        return Hash<intptr_t>()(intptr_t(obj), seed);
     }
 
     inline unsigned operator()(const void* const& obj) const
     {
-        return Hash<long>()(long(obj));
+        return Hash<intptr_t>()(intptr_t(obj));
     }
 };
 
-- 
GitLab