Merge "Avoid creating sp<> from a pointer" am: 51766ce04f
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2215589 Change-Id: I04f015ea7ec6bea80d8d3dc556ad28dde08a78ce Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -28,7 +28,7 @@ cc_library_shared {
|
|||||||
"libaudioclient",
|
"libaudioclient",
|
||||||
"libaudioutils",
|
"libaudioutils",
|
||||||
"libaudiofoundation",
|
"libaudiofoundation",
|
||||||
"libbinder"
|
"libbinder",
|
||||||
],
|
],
|
||||||
|
|
||||||
export_shared_lib_headers: [
|
export_shared_lib_headers: [
|
||||||
@@ -42,6 +42,7 @@ cc_library_shared {
|
|||||||
"-Werror",
|
"-Werror",
|
||||||
"-Wunused",
|
"-Wunused",
|
||||||
"-Wunreachable-code",
|
"-Wunreachable-code",
|
||||||
|
"-DANDROID_UTILS_REF_BASE_DISABLE_IMPLICIT_CONSTRUCTION",
|
||||||
],
|
],
|
||||||
|
|
||||||
// Workaround Clang LTO crash.
|
// Workaround Clang LTO crash.
|
||||||
|
|||||||
@@ -142,7 +142,8 @@ status_t Visualizer::setCaptureCallBack(capture_cbk_t cbk, void* user, uint32_t
|
|||||||
mCaptureRate = rate;
|
mCaptureRate = rate;
|
||||||
|
|
||||||
if (cbk != NULL) {
|
if (cbk != NULL) {
|
||||||
mCaptureThread = new CaptureThread(this, rate, ((flags & CAPTURE_CALL_JAVA) != 0));
|
mCaptureThread = sp<CaptureThread>::make(
|
||||||
|
sp<Visualizer>::fromExisting(this), rate, ((flags & CAPTURE_CALL_JAVA) != 0));
|
||||||
}
|
}
|
||||||
ALOGV("setCaptureCallBack() rate: %d thread %p flags 0x%08x",
|
ALOGV("setCaptureCallBack() rate: %d thread %p flags 0x%08x",
|
||||||
rate, mCaptureThread.get(), mCaptureFlags);
|
rate, mCaptureThread.get(), mCaptureFlags);
|
||||||
@@ -439,7 +440,7 @@ void Visualizer::controlStatusChanged(bool controlGranted) {
|
|||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
|
|
||||||
Visualizer::CaptureThread::CaptureThread(Visualizer* receiver, uint32_t captureRate,
|
Visualizer::CaptureThread::CaptureThread(const sp<Visualizer>& receiver, uint32_t captureRate,
|
||||||
bool bCanCallJava)
|
bool bCanCallJava)
|
||||||
: Thread(bCanCallJava), mReceiver(receiver)
|
: Thread(bCanCallJava), mReceiver(receiver)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -157,7 +157,8 @@ private:
|
|||||||
class CaptureThread : public Thread
|
class CaptureThread : public Thread
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CaptureThread(Visualizer* visualizer, uint32_t captureRate, bool bCanCallJava = false);
|
CaptureThread(const sp<Visualizer>& visualizer,
|
||||||
|
uint32_t captureRate, bool bCanCallJava = false);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class Visualizer;
|
friend class Visualizer;
|
||||||
|
|||||||
@@ -205,15 +205,15 @@ static sp<AudioEffect> getAudioEffect(JNIEnv* env, jobject thiz)
|
|||||||
Mutex::Autolock l(sLock);
|
Mutex::Autolock l(sLock);
|
||||||
AudioEffect* const ae =
|
AudioEffect* const ae =
|
||||||
(AudioEffect*)env->GetLongField(thiz, fields.fidNativeAudioEffect);
|
(AudioEffect*)env->GetLongField(thiz, fields.fidNativeAudioEffect);
|
||||||
return sp<AudioEffect>(ae);
|
return sp<AudioEffect>::fromExisting(ae);
|
||||||
}
|
}
|
||||||
|
|
||||||
static sp<AudioEffect> setAudioEffect(JNIEnv* env, jobject thiz,
|
static sp<AudioEffect> setAudioEffect(JNIEnv* env, jobject thiz,
|
||||||
const sp<AudioEffect>& ae)
|
const sp<AudioEffect>& ae)
|
||||||
{
|
{
|
||||||
Mutex::Autolock l(sLock);
|
Mutex::Autolock l(sLock);
|
||||||
sp<AudioEffect> old =
|
sp<AudioEffect> old = sp<AudioEffect>::fromExisting(
|
||||||
(AudioEffect*)env->GetLongField(thiz, fields.fidNativeAudioEffect);
|
(AudioEffect*)env->GetLongField(thiz, fields.fidNativeAudioEffect));
|
||||||
if (ae.get()) {
|
if (ae.get()) {
|
||||||
ae->incStrong((void*)setAudioEffect);
|
ae->incStrong((void*)setAudioEffect);
|
||||||
}
|
}
|
||||||
@@ -347,8 +347,8 @@ android_media_AudioEffect_native_setup(JNIEnv *env, jobject thiz, jobject weak_t
|
|||||||
// create the native AudioEffect object
|
// create the native AudioEffect object
|
||||||
parcel = parcelForJavaObject(env, jAttributionSource);
|
parcel = parcelForJavaObject(env, jAttributionSource);
|
||||||
attributionSource.readFromParcel(parcel);
|
attributionSource.readFromParcel(parcel);
|
||||||
lpAudioEffect = new AudioEffect(attributionSource);
|
lpAudioEffect = sp<AudioEffect>::make(attributionSource);
|
||||||
if (lpAudioEffect == 0) {
|
if (lpAudioEffect == 0) { // FIXME: I don't think this is actually possible.
|
||||||
ALOGE("Error creating AudioEffect");
|
ALOGE("Error creating AudioEffect");
|
||||||
goto setup_failure;
|
goto setup_failure;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -251,15 +251,15 @@ static sp<Visualizer> getVisualizer(JNIEnv* env, jobject thiz)
|
|||||||
Mutex::Autolock l(sLock);
|
Mutex::Autolock l(sLock);
|
||||||
Visualizer* const v =
|
Visualizer* const v =
|
||||||
(Visualizer*)env->GetLongField(thiz, fields.fidNativeVisualizer);
|
(Visualizer*)env->GetLongField(thiz, fields.fidNativeVisualizer);
|
||||||
return sp<Visualizer>(v);
|
return sp<Visualizer>::fromExisting(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
static sp<Visualizer> setVisualizer(JNIEnv* env, jobject thiz,
|
static sp<Visualizer> setVisualizer(JNIEnv* env, jobject thiz,
|
||||||
const sp<Visualizer>& v)
|
const sp<Visualizer>& v)
|
||||||
{
|
{
|
||||||
Mutex::Autolock l(sLock);
|
Mutex::Autolock l(sLock);
|
||||||
sp<Visualizer> old =
|
sp<Visualizer> old = sp<Visualizer>::fromExisting(
|
||||||
(Visualizer*)env->GetLongField(thiz, fields.fidNativeVisualizer);
|
(Visualizer*)env->GetLongField(thiz, fields.fidNativeVisualizer));
|
||||||
if (v.get()) {
|
if (v.get()) {
|
||||||
v->incStrong((void*)setVisualizer);
|
v->incStrong((void*)setVisualizer);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user