From ae491e9f2118171e02c9dae9f7a8453f510508be Mon Sep 17 00:00:00 2001 From: vroad Date: Wed, 23 Nov 2016 19:28:46 +0900 Subject: [PATCH] Clear finalizer of deleted OpenAL source --- project/src/audio/openal/OpenALBindings.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/project/src/audio/openal/OpenALBindings.cpp b/project/src/audio/openal/OpenALBindings.cpp index 4cbc85603..c6326d420 100644 --- a/project/src/audio/openal/OpenALBindings.cpp +++ b/project/src/audio/openal/OpenALBindings.cpp @@ -190,8 +190,13 @@ namespace lime { void lime_al_delete_source (value source) { - ALuint data = (ALuint)(uintptr_t)val_data (source); - alDeleteSources(1, &data); + if (!val_is_null (source)) { + + ALuint data = (ALuint)(uintptr_t)val_data (source); + alDeleteSources (1, &data); + val_gc (source, 0); + + } }