]> www.ginac.de Git - ginac.git/blobdiff - ginac/wildcard.cpp
calchash(): work around broken RTTI.
[ginac.git] / ginac / wildcard.cpp
index 6f96a04685488a2d61c3edab3524e2876f31833e..98ff880b297b1c4c8ed88f45f0219f772f6b35d3 100644 (file)
@@ -23,6 +23,7 @@
 #include "wildcard.h"
 #include "archive.h"
 #include "utils.h"
+#include "hash_seed.h"
 
 #include <iostream>
 
@@ -106,8 +107,8 @@ unsigned wildcard::calchash() const
        // this is where the schoolbook method
        // (golden_ratio_hash(typeid(*this).name()) ^ label)
        // is not good enough yet...
-       const void* this_tinfo = (const void*)typeid(*this).name();
-       hashvalue = golden_ratio_hash(golden_ratio_hash((p_int)this_tinfo) ^ label);
+       unsigned seed = make_hash_seed(typeid(*this));
+       hashvalue = golden_ratio_hash(seed ^ label);
        setflag(status_flags::hash_calculated);
        return hashvalue;
 }