Guard empty OpenAL listener slices

This commit is contained in:
Brandon McGinty (chatgpt)
2026-08-09 18:09:56 -04:00
committed by Brandon McGinty
parent c96617c71d
commit 208c986d56
2 changed files with 17 additions and 0 deletions
+12
View File
@@ -40,6 +40,9 @@ func (self Listener) Set3f(param int32, value1, value2, value3 float32) {
// Renamed, was Listenerfv. // Renamed, was Listenerfv.
func (self Listener) Setfv(param int32, values []float32) { func (self Listener) Setfv(param int32, values []float32) {
if len(values) == 0 {
return
}
C.walListenerfv(C.ALenum(param), unsafe.Pointer(&values[0])) C.walListenerfv(C.ALenum(param), unsafe.Pointer(&values[0]))
} }
@@ -55,6 +58,9 @@ func (self Listener) Set3i(param int32, value1, value2, value3 int32) {
// Renamed, was Listeneriv. // Renamed, was Listeneriv.
func (self Listener) Setiv(param int32, values []int32) { func (self Listener) Setiv(param int32, values []int32) {
if len(values) == 0 {
return
}
C.walListeneriv(C.ALenum(param), unsafe.Pointer(&values[0])) C.walListeneriv(C.ALenum(param), unsafe.Pointer(&values[0]))
} }
@@ -72,6 +78,9 @@ func (self Listener) Get3f(param int32) (v1, v2, v3 float32) {
// Renamed, was GetListenerfv. // Renamed, was GetListenerfv.
func (self Listener) Getfv(param int32, values []float32) { func (self Listener) Getfv(param int32, values []float32) {
if len(values) == 0 {
return
}
C.walGetListenerfv(C.ALenum(param), unsafe.Pointer(&values[0])) C.walGetListenerfv(C.ALenum(param), unsafe.Pointer(&values[0]))
return return
} }
@@ -90,6 +99,9 @@ func (self Listener) Get3i(param int32) (v1, v2, v3 int32) {
// Renamed, was GetListeneriv. // Renamed, was GetListeneriv.
func (self Listener) Getiv(param int32, values []int32) { func (self Listener) Getiv(param int32, values []int32) {
if len(values) == 0 {
return
}
C.walGetListeneriv(C.ALenum(param), unsafe.Pointer(&values[0])) C.walGetListeneriv(C.ALenum(param), unsafe.Pointer(&values[0]))
} }
+5
View File
@@ -45,6 +45,11 @@ func TestEmptySliceAPIsDoNotPanic(t *testing.T) {
source.Getiv(0, nil) source.Getiv(0, nil)
source.QueueBuffers(nil) source.QueueBuffers(nil)
source.UnqueueBuffers(nil) source.UnqueueBuffers(nil)
var listener openal.Listener
listener.Setfv(0, nil)
listener.Setiv(0, nil)
listener.Getfv(0, nil)
listener.Getiv(0, nil)
var buffer openal.Buffer var buffer openal.Buffer
buffer.SetData(openal.FormatMono8, nil, 0) buffer.SetData(openal.FormatMono8, nil, 0)
buffer.SetDataInt16(openal.FormatMono16, nil, 0) buffer.SetDataInt16(openal.FormatMono16, nil, 0)