Start the lifetime of the texture reference

reinterpret_cast<> doesn't create an object, so the texref is actually unitiliazed. This may lead to garbage data in some of its struct members.

Initialize it by performing a placement new. The constructer should set all of its members to default values. There's no way currently to extract the channel type, so use single channel char for now.

Change-Id: I41b305a75bb3f30130324de785099f55b3e130c7
This commit is contained in:
Vladislav Sytchenko
2020-03-18 12:23:11 -04:00
parent 117f0ab102
commit 292d008a64
2 changed files with 6 additions and 1 deletions
+2 -1
View File
@@ -361,7 +361,8 @@ bool PlatformState::getTexRef(const char* hostVar, hipModule_t hmod, textureRefe
return false;
}
*texRef = reinterpret_cast<textureReference *>(dvar->shadowVptr);
*texRef = new (dvar->shadowVptr) texture<char>{};
return true;
}