Fix bug in creation of EffectHandle when out of memory
If there is insufficient client memory to create the EffectHandle,
it was returning a handle which would be useless. Now it correctly
reports the out-of-memory error back to client.
Change-Id: I894e65d5d17df39383032c1527be6ccd35f578bb
diff --git a/services/audioflinger/Threads.cpp b/services/audioflinger/Threads.cpp
index 4e23129..38d0405 100644
--- a/services/audioflinger/Threads.cpp
+++ b/services/audioflinger/Threads.cpp
@@ -846,7 +846,10 @@
}
// create effect handle and connect it to effect module
handle = new EffectHandle(effect, client, effectClient, priority);
- lStatus = effect->addHandle(handle.get());
+ lStatus = handle->initCheck();
+ if (lStatus == OK) {
+ lStatus = effect->addHandle(handle.get());
+ }
if (enabled != NULL) {
*enabled = (int)effect->isEnabled();
}