Refactor src/lib/libopenal.js. NFC (#27425)
- Use `for .. of` in a few more places.
- Remove code duplication in `setSourceParam(AL_BUFFER)`. The `if`
condition here had a lot of the same code on each branch.
diff --git a/src/lib/libopenal.js b/src/lib/libopenal.js
index 1961aee..a245d85 100644
--- a/src/lib/libopenal.js
+++ b/src/lib/libopenal.js
@@ -143,7 +143,7 @@
var buf = src.bufQueue[bufCursor % src.bufQueue.length];
// If the buffer contains no data, skip it
- if (buf.length === 0) {
+ if (!buf.length) {
skipCount++;
// If we've gone through the whole queue and everything is 0 length, just give up
if (skipCount === src.bufQueue.length) {
@@ -249,7 +249,7 @@
} else if (src.type === {{{ cDefs.AL_STATIC }}} && src.looping) {
// If the source is a looping static buffer, determine the buffer offset based on the loop points
var buf = src.bufQueue[0];
- if (buf.length === 0) {
+ if (!buf.length) {
src.bufOffset = 0.0;
} else {
var delta = (currentTime - src.bufStartTime) * src.playbackRate;
@@ -331,8 +331,8 @@
},
stopSourceAudio: (src) => {
- for (var i = 0; i < src.audioQueue.length; i++) {
- src.audioQueue[i].stop();
+ for (var audioSrc of src.audioQueue) {
+ audioSrc.stop();
}
src.audioQueue.length = 0;
},
@@ -399,9 +399,9 @@
// Find the first non-zero buffer in the queue to determine the proper format
var templateBuf = AL.buffers[0];
- for (var i = 0; i < src.bufQueue.length; i++) {
- if (src.bufQueue[i].id !== 0) {
- templateBuf = src.bufQueue[i];
+ for (var buf of src.bufQueue) {
+ if (buf.id) {
+ templateBuf = buf;
break;
}
}
@@ -697,9 +697,8 @@
sourceDuration: (src) => {
var length = 0.0;
- for (var i = 0; i < src.bufQueue.length; i++) {
- var audioBuf = src.bufQueue[i].audioBuf;
- length += audioBuf ? audioBuf.duration : 0.0;
+ for (var buf of src.bufQueue) {
+ length += buf.audioBuf?.duration ?? 0.0;
}
return length;
},
@@ -709,9 +708,7 @@
var offset = 0.0;
for (var i = 0; i < src.bufsProcessed; i++) {
- if (src.bufQueue[i].audioBuf) {
- offset += src.bufQueue[i].audioBuf.duration;
- }
+ offset += src.bufQueue[i].audioBuf?.duration ?? 0.0;
}
offset += src.bufOffset;
@@ -947,7 +944,7 @@
return;
}
var buf = AL.buffers[bufferId];
- if (!buf || bufferId === 0) {
+ if (!buf || !bufferId) {
#if OPENAL_DEBUG
dbg(`${funcname}() called with an invalid buffer`);
#endif
@@ -965,7 +962,7 @@
case 0x2004 /* AL_SIZE */:
return buf.length * buf.bytesPerSample * buf.channels;
case 0x2015 /* AL_LOOP_POINTS_SOFT */:
- if (buf.length === 0) {
+ if (!buf.length) {
return [0, 0];
}
return [
@@ -989,7 +986,7 @@
return;
}
var buf = AL.buffers[bufferId];
- if (!buf || bufferId === 0) {
+ if (!buf || !bufferId) {
#if OPENAL_DEBUG
dbg(`${funcname}() called with an invalid buffer`);
#endif
@@ -1006,7 +1003,7 @@
switch (param) {
case 0x2004 /* AL_SIZE */:
- if (value !== 0) {
+ if (value) {
#if OPENAL_DEBUG
dbg(`${funcname}() param AL_SIZE value ${value} is out of range`);
#endif
@@ -1093,12 +1090,12 @@
case 0x1010 /* AL_SOURCE_STATE */:
return src.state;
case 0x1015 /* AL_BUFFERS_QUEUED */:
- if (src.bufQueue.length === 1 && src.bufQueue[0].id === 0) {
+ if (src.bufQueue.length === 1 && !src.bufQueue[0].id) {
return 0;
}
return src.bufQueue.length;
case 0x1016 /* AL_BUFFERS_PROCESSED */:
- if ((src.bufQueue.length === 1 && src.bufQueue[0].id === 0) || src.looping) {
+ if ((src.bufQueue.length === 1 && !src.bufQueue[0].id) || src.looping) {
return 0;
}
return src.bufsProcessed;
@@ -1131,17 +1128,17 @@
case 0x2009 /* AL_BYTE_LENGTH_SOFT */:
var length = 0;
var bytesPerFrame = 0;
- for (var i = 0; i < src.bufQueue.length; i++) {
- length += src.bufQueue[i].length;
- if (src.bufQueue[i].id !== 0) {
- bytesPerFrame = src.bufQueue[i].bytesPerSample * src.bufQueue[i].channels;
+ for (var buf of src.bufQueue) {
+ length += buf.length;
+ if (buf.id) {
+ bytesPerFrame = buf.bytesPerSample * buf.channels;
}
}
return length * bytesPerFrame;
case 0x200A /* AL_SAMPLE_LENGTH_SOFT */:
var length = 0;
- for (var i = 0; i < src.bufQueue.length; i++) {
- length += src.bufQueue[i].length;
+ for (var buf of src.bufQueue) {
+ length += buf.length;
}
return length;
case 0x200B /* AL_SEC_LENGTH_SOFT */:
@@ -1318,8 +1315,8 @@
}
if (value === 0) {
- for (var i in src.bufQueue) {
- src.bufQueue[i].refCount--;
+ for (var b of src.bufQueue) {
+ b.refCount--;
}
src.bufQueue.length = 1;
src.bufQueue[0] = AL.buffers[0];
@@ -1336,8 +1333,8 @@
return;
}
- for (var i in src.bufQueue) {
- src.bufQueue[i].refCount--;
+ for (var b of src.bufQueue) {
+ b.refCount--;
}
src.bufQueue.length = 0;
@@ -1454,7 +1451,7 @@
if (srcLen > 0.0) {
var frequency;
for (var buf of src.bufQueue) {
- if (buf.id !== 0) {
+ if (buf.id) {
frequency = buf.frequency;
break;
}
@@ -1476,7 +1473,7 @@
if (srcLen > 0.0) {
var bytesPerSec;
for (var buf of src.bufQueue) {
- if (buf.id !== 0) {
+ if (buf.id) {
bytesPerSec = buf.frequency * buf.bytesPerSample * buf.channels;
break;
}
@@ -1561,7 +1558,7 @@
// people might assume that most alcCapture functions
// accept NULL as a 'use the default' device.
requireValidCaptureDevice: (deviceId, funcname) => {
- if (deviceId === 0) {
+ if (!deviceId) {
#if OPENAL_DEBUG
dbg(`${funcname}() on a NULL device is an error`);
#endif
@@ -1616,7 +1613,7 @@
var resolvedDeviceName = AL.CAPTURE_DEVICE_NAME;
// NULL is a valid device name here (resolves to default);
- if (pDeviceName !== 0) {
+ if (pDeviceName) {
resolvedDeviceName = UTF8ToString(pDeviceName);
if (resolvedDeviceName !== AL.CAPTURE_DEVICE_NAME) {
#if OPENAL_DEBUG
@@ -2088,7 +2085,7 @@
while (true) {
attr = HEAP32[pAttrList++];
attrs.push(attr);
- if (attr === 0) {
+ if (!attr) {
break;
}
val = HEAP32[pAttrList++];
@@ -2125,7 +2122,7 @@
}
break;
case 0x1996 /* ALC_HRTF_ID_SOFT */:
- if (val !== 0) {
+ if (val) {
#if OPENAL_DEBUG
dbg(`Invalid ALC_HRTF_ID_SOFT index ${val}`);
#endif
@@ -2254,20 +2251,11 @@
},
alcGetCurrentContext__proxy: 'sync',
- alcGetCurrentContext: () => {
- if (AL.currentCtx !== null) {
- return AL.currentCtx.id;
- }
- return 0;
- },
+ alcGetCurrentContext: () => AL.currentCtx ? AL.currentCtx.id : 0,
alcMakeContextCurrent__proxy: 'sync',
alcMakeContextCurrent: (contextId) => {
- if (contextId === 0) {
- AL.currentCtx = null;
- } else {
- AL.currentCtx = AL.contexts[contextId];
- }
+ AL.currentCtx = AL.contexts[contextId];
return {{{ cDefs.ALC_TRUE }}};
},
@@ -2295,7 +2283,7 @@
// Spec says :
// Using a NULL handle is legal, but only the
// tokens defined by the AL core are guaranteed.
- if (deviceId !== 0 && !(deviceId in AL.deviceRefCounts)) {
+ if (deviceId && !(deviceId in AL.deviceRefCounts)) {
#if OPENAL_DEBUG
dbg('alcGetEnumValue() called with an invalid device');
#endif
@@ -2399,7 +2387,7 @@
ret = AL.CAPTURE_DEVICE_NAME;
break;
case 0x310 /* ALC_CAPTURE_DEVICE_SPECIFIER */:
- if (deviceId === 0) {
+ if (!deviceId) {
ret = AL.CAPTURE_DEVICE_NAME + '\0';
} else {
var c = AL.requireValidCaptureDevice(deviceId, 'alcGetString');
@@ -2429,7 +2417,7 @@
alcGetIntegerv__proxy: 'sync',
alcGetIntegerv: (deviceId, param, size, pValues) => {
- if (size === 0 || !pValues) {
+ if (!size || !pValues) {
// Ignore the query, per the spec
return;
}
@@ -2620,7 +2608,7 @@
var ret;
switch (param) {
case 0x1995 /* ALC_HRTF_SPECIFIER_SOFT */:
- if (index === 0) {
+ if (!index) {
ret = 'Web Audio HRTF';
} else {
#if OPENAL_DEBUG
@@ -2631,7 +2619,7 @@
}
break;
default:
- if (index !== 0) {
+ if (index) {
#if OPENAL_DEBUG
dbg(`alcGetStringiSOFT() with param ${ptrToString(param)} not implemented yet`);
#endif
@@ -2664,7 +2652,7 @@
var val = 0;
while (true) {
attr = HEAP32[pAttrList++];
- if (attr === 0) {
+ if (!attr) {
break;
}
val = HEAP32[pAttrList++];
@@ -2740,8 +2728,8 @@
for (var i = 0; i < count; ++i) {
var bufId = {{{ makeGetValue('pBufferIds', 'i*4', 'i32') }}};
- /// Deleting the zero buffer is a legal NOP, so ignore it
- if (bufId === 0) {
+ // Deleting the zero buffer is a legal NOP, so ignore it
+ if (!bufId) {
continue;
}
@@ -2766,7 +2754,7 @@
for (var i = 0; i < count; ++i) {
var bufId = {{{ makeGetValue('pBufferIds', 'i*4', 'i32') }}};
- if (bufId === 0) {
+ if (!bufId) {
continue;
}
@@ -3250,7 +3238,7 @@
case {{{ cDefs.AL_DOPPLER_FACTOR }}}:
case {{{ cDefs.AL_SPEED_OF_SOUND }}}:
case {{{ cDefs.AL_DISTANCE_MODEL }}}:
- return val !== 0 ? {{{ cDefs.AL_TRUE }}} : {{{ cDefs.AL_FALSE }}};
+ return val ? {{{ cDefs.AL_TRUE }}} : {{{ cDefs.AL_FALSE }}};
default:
#if OPENAL_DEBUG
dbg(`alGetBoolean(): param ${ptrToString(param)} has wrong signature`);
@@ -4032,14 +4020,14 @@
return;
}
- if (count === 0) {
+ if (!count) {
return;
}
// Find the first non-zero buffer in the queue to determine the proper format
var templateBuf = AL.buffers[0];
for (var buf of src.bufQueue) {
- if (buf.id !== 0) {
+ if (buf.id) {
templateBuf = buf;
break;
}
@@ -4057,7 +4045,7 @@
}
// Check that the added buffer has the correct format. If the template is the zero buffer, any format is valid.
- if (templateBuf.id !== 0 && (
+ if (templateBuf.id && (
buf.frequency !== templateBuf.frequency
|| buf.bytesPerSample !== templateBuf.bytesPerSample
|| buf.channels !== templateBuf.channels)
@@ -4070,7 +4058,7 @@
}
// If the only buffer in the queue is the zero buffer, clear the queue before we add anything.
- if (src.bufQueue.length === 1 && src.bufQueue[0].id === 0) {
+ if (src.bufQueue.length === 1 && !src.bufQueue[0].id) {
src.bufQueue.length = 0;
}
@@ -4107,12 +4095,12 @@
AL.currentCtx.err = {{{ cDefs.AL_INVALID_NAME }}};
return;
}
- if (count > (src.bufQueue.length === 1 && src.bufQueue[0].id === 0 ? 0 : src.bufsProcessed)) {
+ if (count > (src.bufQueue.length === 1 && !src.bufQueue[0].id ? 0 : src.bufsProcessed)) {
AL.currentCtx.err = {{{ cDefs.AL_INVALID_VALUE }}};
return;
}
- if (count === 0) {
+ if (!count) {
return;
}
@@ -4125,7 +4113,7 @@
}
/// If the queue is empty, put the zero buffer back in
- if (src.bufQueue.length === 0) {
+ if (!src.bufQueue.length) {
src.bufQueue.push(AL.buffers[0]);
}
diff --git a/test/codesize/test_codesize_hello_dylink_all.json b/test/codesize/test_codesize_hello_dylink_all.json
index 77d18f7..d7becc6 100644
--- a/test/codesize/test_codesize_hello_dylink_all.json
+++ b/test/codesize/test_codesize_hello_dylink_all.json
@@ -1,7 +1,7 @@
{
- "a.out.js": 268215,
+ "a.out.js": 267949,
"a.out.nodebug.wasm": 588309,
- "total": 856524,
+ "total": 856258,
"sent": [
"IMG_Init",
"IMG_Load",
diff --git a/tools/maint/sync_deps.py b/tools/maint/sync_deps.py
index ff418b3..9cf82f3 100755
--- a/tools/maint/sync_deps.py
+++ b/tools/maint/sync_deps.py
@@ -98,7 +98,7 @@
return
if is_dirty(repo_dir):
- utils.exit_with_error("Directory for {name} is dirty: '{repo_dir}'")
+ utils.exit_with_error(f"Directory for {name} is dirty: '{repo_dir}'")
if not has_revision(repo_dir, revision):
print(' Fetching revision')