aboutsummaryrefslogtreecommitdiffstats
path: root/al/debug.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2023-05-14 19:39:25 -0700
committerChris Robinson <[email protected]>2023-05-14 19:39:25 -0700
commit5d89ea32c2bb6d5a137cb345bec616b0d6708789 (patch)
tree6e914a89d45d2cacce34c265e03d9ab3b02024ef /al/debug.cpp
parent5ab9ce58808a6c92bbb92c8f58d7694cb86e5414 (diff)
Don't check for a null context in direct functions
Diffstat (limited to 'al/debug.cpp')
-rw-r--r--al/debug.cpp51
1 files changed, 30 insertions, 21 deletions
diff --git a/al/debug.cpp b/al/debug.cpp
index e28df917..9c0a63ef 100644
--- a/al/debug.cpp
+++ b/al/debug.cpp
@@ -234,14 +234,15 @@ void ALCcontext::sendDebugMessage(std::unique_lock<std::mutex> &debuglock, Debug
FORCE_ALIGN void AL_APIENTRY alDebugMessageCallbackEXT(ALDEBUGPROCEXT callback, void *userParam) noexcept
-{ return alDebugMessageCallbackDirectEXT(GetContextRef().get(), callback, userParam); }
+{
+ auto context = GetContextRef();
+ if(!context) UNLIKELY return;
+ return alDebugMessageCallbackDirectEXT(context.get(), callback, userParam);
+}
FORCE_ALIGN void AL_APIENTRY alDebugMessageCallbackDirectEXT(ALCcontext *context,
ALDEBUGPROCEXT callback, void *userParam) noexcept
{
- if(!context) UNLIKELY
- return;
-
std::lock_guard<std::mutex> _{context->mDebugCbLock};
context->mDebugCb = callback;
context->mDebugParam = userParam;
@@ -249,7 +250,11 @@ FORCE_ALIGN void AL_APIENTRY alDebugMessageCallbackDirectEXT(ALCcontext *context
FORCE_ALIGN void AL_APIENTRY alDebugMessageInsertEXT(ALenum source, ALenum type, ALuint id, ALenum severity, ALsizei length, const ALchar *message) noexcept
-{ return alDebugMessageInsertDirectEXT(GetContextRef().get(), source, type, id, severity, length, message); }
+{
+ auto context = GetContextRef();
+ if(!context) UNLIKELY return;
+ return alDebugMessageInsertDirectEXT(context.get(), source, type, id, severity, length, message);
+}
FORCE_ALIGN void AL_APIENTRY alDebugMessageInsertDirectEXT(ALCcontext *context, ALenum source,
ALenum type, ALuint id, ALenum severity, ALsizei length, const ALchar *message) noexcept
@@ -294,14 +299,15 @@ FORCE_ALIGN void AL_APIENTRY alDebugMessageInsertDirectEXT(ALCcontext *context,
FORCE_ALIGN void AL_APIENTRY alDebugMessageControlEXT(ALenum source, ALenum type, ALenum severity, ALsizei count, const ALuint *ids, ALboolean enable) noexcept
-{ return alDebugMessageControlDirectEXT(GetContextRef().get(), source, type, severity, count, ids, enable); }
+{
+ auto context = GetContextRef();
+ if(!context) UNLIKELY return;
+ return alDebugMessageControlDirectEXT(context.get(), source, type, severity, count, ids, enable);
+}
FORCE_ALIGN void AL_APIENTRY alDebugMessageControlDirectEXT(ALCcontext *context, ALenum source,
ALenum type, ALenum severity, ALsizei count, const ALuint *ids, ALboolean enable) noexcept
{
- if(!context) UNLIKELY
- return;
-
if(count > 0)
{
if(!ids)
@@ -395,14 +401,15 @@ FORCE_ALIGN void AL_APIENTRY alDebugMessageControlDirectEXT(ALCcontext *context,
FORCE_ALIGN void AL_APIENTRY alPushDebugGroupEXT(ALenum source, ALuint id, ALsizei length, const ALchar *message) noexcept
-{ return alPushDebugGroupDirectEXT(GetContextRef().get(), source, id, length, message); }
+{
+ auto context = GetContextRef();
+ if(!context) UNLIKELY return;
+ return alPushDebugGroupDirectEXT(context.get(), source, id, length, message);
+}
FORCE_ALIGN void AL_APIENTRY alPushDebugGroupDirectEXT(ALCcontext *context, ALenum source,
ALuint id, ALsizei length, const ALchar *message) noexcept
{
- if(!context) UNLIKELY
- return;
-
if(length < 0)
{
size_t newlen{std::strlen(message)};
@@ -442,13 +449,14 @@ FORCE_ALIGN void AL_APIENTRY alPushDebugGroupDirectEXT(ALCcontext *context, ALen
}
FORCE_ALIGN void AL_APIENTRY alPopDebugGroupEXT(void) noexcept
-{ return alPopDebugGroupDirectEXT(GetContextRef().get()); }
+{
+ auto context = GetContextRef();
+ if(!context) UNLIKELY return;
+ return alPopDebugGroupDirectEXT(context.get());
+}
FORCE_ALIGN void AL_APIENTRY alPopDebugGroupDirectEXT(ALCcontext *context) noexcept
{
- if(!context) UNLIKELY
- return;
-
std::unique_lock<std::mutex> debuglock{context->mDebugCbLock};
if(context->mDebugGroups.size() <= 1)
{
@@ -470,15 +478,16 @@ FORCE_ALIGN void AL_APIENTRY alPopDebugGroupDirectEXT(ALCcontext *context) noexc
FORCE_ALIGN ALuint AL_APIENTRY alGetDebugMessageLogEXT(ALuint count, ALsizei logBufSize, ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities, ALsizei *lengths, ALchar *logBuf) noexcept
-{ return alGetDebugMessageLogDirectEXT(GetContextRef().get(), count, logBufSize, sources, types, ids, severities, lengths, logBuf); }
+{
+ auto context = GetContextRef();
+ if(!context) UNLIKELY return 0;
+ return alGetDebugMessageLogDirectEXT(context.get(), count, logBufSize, sources, types, ids, severities, lengths, logBuf);
+}
FORCE_ALIGN ALuint AL_APIENTRY alGetDebugMessageLogDirectEXT(ALCcontext *context, ALuint count,
ALsizei logBufSize, ALenum *sources, ALenum *types, ALuint *ids, ALenum *severities,
ALsizei *lengths, ALchar *logBuf) noexcept
{
- if(!context) UNLIKELY
- return 0;
-
if(logBufSize < 0)
{
context->setError(AL_INVALID_VALUE, "Negative debug log buffer size");