Issue #457 - Make GLContextSymbols a pure aggregate POD

This commit is contained in:
trav90 2022-05-28 11:45:52 -05:00 committed by roytam1
commit f2cfb9997e
2 changed files with 5 additions and 10 deletions

View file

@ -454,6 +454,7 @@ GLContext::GLContext(CreateContextFlags flags, const SurfaceCaps& caps,
mTopError(LOCAL_GL_NO_ERROR),
mDebugFlags(ChooseDebugFlags(flags)),
mSharedContext(sharedContext),
mSymbols{},
mCaps(caps),
mScreen(nullptr),
mLockedSurface(nullptr),
@ -519,7 +520,7 @@ GLContext::InitWithPrefix(const char* prefix, bool trygl)
if (!InitWithPrefixImpl(prefix, trygl)) {
// If initialization fails, zero the symbols to avoid hard-to-understand bugs.
mSymbols.Zero();
mSymbols = {};
NS_WARNING("GLContext::InitWithPrefix failed!");
return false;
}
@ -2205,7 +2206,7 @@ GLContext::MarkDestroyed()
mReadTexImageHelper = nullptr;
mIsDestroyed = true;
mSymbols.Zero();
mSymbols = {};
if (MakeCurrent(true)) {
mTexGarbageBin->GLContextTeardown();
}

View file

@ -25,15 +25,9 @@
namespace mozilla {
namespace gl {
struct GLContextSymbols
struct GLContextSymbols final
{
GLContextSymbols() {
Zero();
}
void Zero() {
memset(this, 0, sizeof(GLContextSymbols));
}
GLContextSymbols() = delete; // Initialize with {}.
typedef void (GLAPIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture);
PFNGLACTIVETEXTUREPROC fActiveTexture;