Skip to content

Commit

Permalink
Avoid assignments in if conditions
Browse files Browse the repository at this point in the history
  • Loading branch information
kcat committed Dec 23, 2023
1 parent 4720b2c commit cfb6bdf
Show file tree
Hide file tree
Showing 8 changed files with 62 additions and 44 deletions.
4 changes: 2 additions & 2 deletions al/source.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3410,8 +3410,8 @@ FORCE_ALIGN void AL_APIENTRY alSourceQueueBuffersDirect(ALCcontext *context, ALu
for(ALsizei i{0};i < nb;i++)
{
bool fmt_mismatch{false};
ALbuffer *buffer{nullptr};
if(buffers[i] && (buffer=LookupBuffer(device, buffers[i])) == nullptr)
ALbuffer *buffer{buffers[i] ? LookupBuffer(device, buffers[i]) : nullptr};
if(buffers[i] && !buffer)
{
context->setError(AL_INVALID_NAME, "Queueing invalid buffer ID %u", buffers[i]);
goto buffer_error;
Expand Down
37 changes: 20 additions & 17 deletions alc/alc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,8 @@ void alc_initconfig()

auto BackendListEnd = std::end(BackendList);
auto devopt = al::getenv("ALSOFT_DRIVERS");
if(devopt || (devopt=ConfigValueStr({}, {}, "drivers")))
if(!devopt) devopt = ConfigValueStr({}, {}, "drivers");
if(devopt)
{
auto backendlist_cur = std::begin(BackendList);

Expand Down Expand Up @@ -670,8 +671,8 @@ void alc_initconfig()

InitEffect(&ALCcontext::sDefaultEffect);
auto defrevopt = al::getenv("ALSOFT_DEFAULT_REVERB");
if(defrevopt || (defrevopt=ConfigValueStr({}, {}, "default-reverb")))
LoadReverbPreset(defrevopt->c_str(), &ALCcontext::sDefaultEffect);
if(!defrevopt) defrevopt = ConfigValueStr({}, {}, "default-reverb");
if(defrevopt) LoadReverbPreset(defrevopt->c_str(), &ALCcontext::sDefaultEffect);

#ifdef ALSOFT_EAX
{
Expand Down Expand Up @@ -2556,23 +2557,25 @@ ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent(ALCdevice *device, const A
{
DeviceRef dev{VerifyDevice(device)};
if(!extName)
{
alcSetError(dev.get(), ALC_INVALID_VALUE);
else
return ALC_FALSE;
}

const std::string_view tofind{extName};
auto extlist = dev ? std::string_view{alcExtensionList} : std::string_view{alcNoDeviceExtList};
while(!extlist.empty())
{
size_t len = strlen(extName);
const char *ptr = (dev ? alcExtensionList : alcNoDeviceExtList);
while(ptr && *ptr)
{
if(al::strncasecmp(ptr, extName, len) == 0 && (ptr[len] == '\0' || isspace(ptr[len])))
return ALC_TRUE;
auto nextpos = extlist.find(' ');
auto tocheck = extlist.substr(0, nextpos);
if(tocheck.size() == tofind.size()
&& al::strncasecmp(tofind.data(), tocheck.data(), tofind.size()) == 0)
return ALC_TRUE;

if((ptr=strchr(ptr, ' ')) != nullptr)
{
do {
++ptr;
} while(isspace(*ptr));
}
}
if(nextpos == std::string_view::npos)
break;

extlist.remove_prefix(nextpos+1);
}
return ALC_FALSE;
}
Expand Down
44 changes: 27 additions & 17 deletions alc/backends/alsa.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -311,12 +311,14 @@ std::vector<DevMap> probe_devices(snd_pcm_stream_t stream)
std::string name{"hw:" + std::to_string(card)};

snd_ctl_t *handle;
if((err=snd_ctl_open(&handle, name.c_str(), 0)) < 0)
err = snd_ctl_open(&handle, name.c_str(), 0);
if(err < 0)
{
ERR("control open (hw:%d): %s\n", card, snd_strerror(err));
continue;
}
if((err=snd_ctl_card_info(handle, info)) < 0)
err = snd_ctl_card_info(handle, info);
if(err < 0)
{
ERR("control hardware info (hw:%d): %s\n", card, snd_strerror(err));
snd_ctl_close(handle);
Expand All @@ -340,7 +342,8 @@ std::vector<DevMap> probe_devices(snd_pcm_stream_t stream)
snd_pcm_info_set_device(pcminfo, static_cast<uint>(dev));
snd_pcm_info_set_subdevice(pcminfo, 0);
snd_pcm_info_set_stream(pcminfo, stream);
if((err=snd_ctl_pcm_info(handle, pcminfo)) < 0)
err = snd_ctl_pcm_info(handle, pcminfo);
if(err < 0)
{
if(err != -ENOENT)
ERR("control digital audio info (hw:%d): %s\n", card, snd_strerror(err));
Expand Down Expand Up @@ -405,13 +408,14 @@ int verify_state(snd_pcm_t *handle)
break;

case SND_PCM_STATE_XRUN:
if((err=snd_pcm_recover(handle, -EPIPE, 1)) < 0)
return err;
err=snd_pcm_recover(handle, -EPIPE, 1);
if(err < 0) return err;
break;
case SND_PCM_STATE_SUSPENDED:
if((err=snd_pcm_recover(handle, -ESTRPIPE, 1)) < 0)
return err;
err = snd_pcm_recover(handle, -ESTRPIPE, 1);
if(err < 0) return err;
break;

case SND_PCM_STATE_DISCONNECTED:
return -ENODEV;
}
Expand Down Expand Up @@ -698,7 +702,8 @@ bool AlsaPlayback::reset()
int err{};
HwParamsPtr hp{CreateHwParams()};
#define CHECK(x) do { \
if((err=(x)) < 0) \
err = (x); \
if(err < 0) \
throw al::backend_exception{al::backend_error::DeviceError, #x " failed: %s", \
snd_strerror(err)}; \
} while(0)
Expand Down Expand Up @@ -759,11 +764,11 @@ bool AlsaPlayback::reset()
WARN("Failed to enable ALSA resampler\n");
CHECK(snd_pcm_hw_params_set_rate_near(mPcmHandle, hp.get(), &rate, nullptr));
/* set period time (implicitly constrains period/buffer parameters) */
if((err=snd_pcm_hw_params_set_period_time_near(mPcmHandle, hp.get(), &periodLen, nullptr)) < 0)
ERR("snd_pcm_hw_params_set_period_time_near failed: %s\n", snd_strerror(err));
err = snd_pcm_hw_params_set_period_time_near(mPcmHandle, hp.get(), &periodLen, nullptr);
if(err < 0) ERR("snd_pcm_hw_params_set_period_time_near failed: %s\n", snd_strerror(err));
/* set buffer time (implicitly sets buffer size/bytes/time and period size/bytes) */
if((err=snd_pcm_hw_params_set_buffer_time_near(mPcmHandle, hp.get(), &bufferLen, nullptr)) < 0)
ERR("snd_pcm_hw_params_set_buffer_time_near failed: %s\n", snd_strerror(err));
err = snd_pcm_hw_params_set_buffer_time_near(mPcmHandle, hp.get(), &bufferLen, nullptr);
if(err < 0) ERR("snd_pcm_hw_params_set_buffer_time_near failed: %s\n", snd_strerror(err));
/* install and prepare hardware configuration */
CHECK(snd_pcm_hw_params(mPcmHandle, hp.get()));

Expand Down Expand Up @@ -801,7 +806,8 @@ void AlsaPlayback::start()
snd_pcm_access_t access{};
HwParamsPtr hp{CreateHwParams()};
#define CHECK(x) do { \
if((err=(x)) < 0) \
err = (x); \
if(err < 0) \
throw al::backend_exception{al::backend_error::DeviceError, #x " failed: %s", \
snd_strerror(err)}; \
} while(0)
Expand Down Expand Up @@ -958,7 +964,8 @@ void AlsaCapture::open(std::string_view name)
bool needring{false};
HwParamsPtr hp{CreateHwParams()};
#define CHECK(x) do { \
if((err=(x)) < 0) \
err = (x); \
if(err < 0) \
throw al::backend_exception{al::backend_error::DeviceError, #x " failed: %s", \
snd_strerror(err)}; \
} while(0)
Expand Down Expand Up @@ -1065,7 +1072,8 @@ void AlsaCapture::captureSamples(std::byte *buffer, uint samples)

if(amt == -EAGAIN)
continue;
if((amt=snd_pcm_recover(mPcmHandle, static_cast<int>(amt), 1)) >= 0)
amt = snd_pcm_recover(mPcmHandle, static_cast<int>(amt), 1);
if(amt >= 0)
{
amt = snd_pcm_start(mPcmHandle);
if(amt >= 0)
Expand Down Expand Up @@ -1102,7 +1110,8 @@ uint AlsaCapture::availableSamples()
{
ERR("avail update failed: %s\n", snd_strerror(static_cast<int>(avail)));

if((avail=snd_pcm_recover(mPcmHandle, static_cast<int>(avail), 1)) >= 0)
avail = snd_pcm_recover(mPcmHandle, static_cast<int>(avail), 1);
if(avail >= 0)
{
if(mDoCapture)
avail = snd_pcm_start(mPcmHandle);
Expand Down Expand Up @@ -1138,7 +1147,8 @@ uint AlsaCapture::availableSamples()

if(amt == -EAGAIN)
continue;
if((amt=snd_pcm_recover(mPcmHandle, static_cast<int>(amt), 1)) >= 0)
amt = snd_pcm_recover(mPcmHandle, static_cast<int>(amt), 1);
if(amt >= 0)
{
if(mDoCapture)
amt = snd_pcm_start(mPcmHandle);
Expand Down
7 changes: 5 additions & 2 deletions alc/backends/pipewire.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1088,8 +1088,11 @@ void NodeProxy::paramCallback(int, uint32_t id, uint32_t, uint32_t, const spa_po

if(const spa_pod_prop *prop{spa_pod_find_prop(param, nullptr, SPA_FORMAT_AUDIO_position)})
node->parsePositions(&prop->value, force_update);
else if((prop=spa_pod_find_prop(param, nullptr, SPA_FORMAT_AUDIO_channels)) != nullptr)
node->parseChannelCount(&prop->value, force_update);
else
{
prop = spa_pod_find_prop(param, nullptr, SPA_FORMAT_AUDIO_channels);
if(prop) node->parseChannelCount(&prop->value, force_update);
}
}
}

Expand Down
3 changes: 2 additions & 1 deletion alc/backends/portaudio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -394,7 +394,8 @@ bool PortBackendFactory::init()
LOAD_FUNC(Pa_GetStreamInfo);
#undef LOAD_FUNC

if((err=Pa_Initialize()) != paNoError)
err = Pa_Initialize();
if(err != paNoError)
{
ERR("Pa_Initialize() returned an error: %s\n", Pa_GetErrorText(err));
CloseLib(pa_handle);
Expand Down
4 changes: 2 additions & 2 deletions alc/backends/pulseaudio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -510,8 +510,8 @@ void MainloopUniqueLock::connectContext()
pa_context_set_state_callback(mutex()->mContext, [](pa_context *ctx, void *pdata) noexcept
{ return static_cast<MainloopUniqueLock*>(pdata)->contextStateCallback(ctx); }, this);

int err;
if((err=pa_context_connect(mutex()->mContext, nullptr, pulse_ctx_flags, nullptr)) >= 0)
int err{pa_context_connect(mutex()->mContext, nullptr, pulse_ctx_flags, nullptr)};
if(err >= 0)
{
pa_context_state_t state;
while((state=pa_context_get_state(mutex()->mContext)) != PA_CONTEXT_READY)
Expand Down
3 changes: 2 additions & 1 deletion examples/alstreamcb.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -522,7 +522,8 @@ int main(int argc, char **argv)

/* Get the name portion, without the path, for display. */
const char *namepart{strrchr(argv[i], '/')};
if(namepart || (namepart=strrchr(argv[i], '\\')))
if(!namepart) namepart = strrchr(argv[i], '\\');
if(namepart)
++namepart;
else
namepart = argv[i];
Expand Down
4 changes: 2 additions & 2 deletions utils/makemhr/makemhr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -342,9 +342,9 @@ static int StoreMhr(const HrirDataT *hData, const char *filename)
const uint n{hData->mIrPoints};
uint dither_seed{22222};
uint fi, ei, ai, i;
FILE *fp;

if((fp=fopen(filename, "wb")) == nullptr)
FILE *fp{fopen(filename, "wb")};
if(!fp)
{
fprintf(stderr, "\nError: Could not open MHR file '%s'.\n", filename);
return 0;
Expand Down

0 comments on commit cfb6bdf

Please sign in to comment.