doxygen: prevent GPL license block from being parsed as doxygen comment.
[blender.git] / source / gameengine / Expressions / KX_HashedPtr.cpp
1 /*
2  * $Id$
3  * ***** BEGIN GPL LICENSE BLOCK *****
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  *
19  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
20  * All rights reserved.
21  *
22  * The Original Code is: all of this file.
23  *
24  * Contributor(s): none yet.
25  *
26  * ***** END GPL LICENSE BLOCK *****
27  */
28
29 #include "KX_HashedPtr.h"
30
31 unsigned int KX_Hash(void * inDWord)
32 {
33 #if defined(_WIN64)
34         unsigned __int64 key = (unsigned __int64)inDWord;
35 #else
36         unsigned long key = (unsigned long)inDWord;
37 #endif
38
39         key += ~(key << 16);
40         key ^=  (key >>  5);
41         key +=  (key <<  3);
42         key ^=  (key >> 13);
43         key += ~(key <<  9);
44         key ^=  (key >> 17);
45
46         return (unsigned int)(key & 0xffffffff);
47 }
48
49
50 CHashedPtr::CHashedPtr(void* val) : m_valptr(val)
51 {
52 }
53
54
55
56 unsigned int CHashedPtr::hash() const
57 {
58         return KX_Hash(m_valptr);
59 }