You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When building windows shared libaray(dll), each dll has their own version of kSeed with different value which cause
static size_t hash(T value) { return static_cast<size_t>(Mix(Seed(), static_cast<uint64_t>(value))); }
return different hash value for the same key for each dll and failed.
Steps to reproduce the bug
Say you have A.dll and B.dll both link to absl, and B.dll dpendent on A.dll
In A.dll you have something like
class SingletonA
{
static SingletonA* Inst()
{
static SingletonA* sInstance = new SingletonA();
}
Describe the bug
When building windows shared libaray(dll), each dll has their own version of kSeed with different value which cause
static size_t hash(T value) { return static_cast<size_t>(Mix(Seed(), static_cast<uint64_t>(value))); }
return different hash value for the same key for each dll and failed.
Steps to reproduce the bug
Say you have A.dll and B.dll both link to absl, and B.dll dpendent on A.dll
In A.dll you have something like
class SingletonA
{
static SingletonA* Inst()
{
static SingletonA* sInstance = new SingletonA();
}
}
In B.dll you'll get
SingletonA.Inst().gTestMap.find(100) == SingletonA.Inst().gTestMap.end()
What version of Abseil are you using?
latest, 2022.7.25
What operating system and version are you using
windows 10
What compiler and version are you using?
vs2022 with Platform toolset Visual Studio 2019 (v142) c++17 enable
What build system are you using?
cmake 3.23.2
The text was updated successfully, but these errors were encountered: