Должен ли я выпустить контекст OpenAL здесь?

При настройке OpenAL Leaks Instruments сообщает мне, что я передаю alContext здесь:

alDevice = alcOpenDevice(NULL);
if (!alDevice) {
    return NO;
}

alContext = alcCreateContext(alDevice, 0); // leaking!
if (!alContext) {
    return NO;
}

BOOL success = alcMakeContextCurrent(alContext);
if (!success) {
    return NO;
}

return YES;

Где и как мне выпустить alContext?

1 ответ

Решение

Вот как бы вы убрали:

alcMakeContextCurrent(NULL);
alcDestroyContext(alContext);
alcCloseDevice(alDevice);

И вы просто вызываете эти методы всякий раз, когда закончите с контекстом... который зависит от вашего приложения и от того, как вы его используете, но, вероятно, в dealloc где-то.

Другие вопросы по тегам