diff options
-rw-r--r-- | media/jni/soundpool/StreamManager.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/media/jni/soundpool/StreamManager.h b/media/jni/soundpool/StreamManager.h index 15b39f2df891..30ad220db05b 100644 --- a/media/jni/soundpool/StreamManager.h +++ b/media/jni/soundpool/StreamManager.h @@ -70,9 +70,10 @@ private: static int staticFunction(void *data) { JavaThread *jt = static_cast<JavaThread *>(data); jt->mF(); + jt->mIsClosed = true; // set the flag that we are closed + // now before we allow the destructor to execute; + // otherwise there may be a use after free. jt->mPromise.set_value(); - jt->mIsClosed = true; // publicly inform that we are closed - // after we have accessed all variables. return 0; } |