summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-03-02 05:09:11 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2020-03-02 05:09:11 +0000
commitd56d6d412d5a08449590deabaf22d377391d4c3c (patch)
tree2e827bc907cebcded0ea2c8e053539516ce5b0a1
parent5bdf87f65bfa951e02a546cc35bd13a534bf033b (diff)
parent048748a2f20da01a47a005cbf23425df9128a010 (diff)
downloadgps-d56d6d412d5a08449590deabaf22d377391d4c3c.tar.gz
Only allow one extension obj of each type to be created am: cd5ef1dfc2 am: cad5721854 am: 440ae3e58e am: 099792775d am: 048748a2f2
Change-Id: Ibd5c62065dbbeab57a8742b5dc5a7629489e75f9
-rw-r--r--android/2.0/Gnss.cpp40
1 files changed, 30 insertions, 10 deletions
diff --git a/android/2.0/Gnss.cpp b/android/2.0/Gnss.cpp
index 6f1abf4..1b3ea1d 100644
--- a/android/2.0/Gnss.cpp
+++ b/android/2.0/Gnss.cpp
@@ -378,31 +378,41 @@ Return<sp<V1_0::IGnssMeasurement>> Gnss::getExtensionGnssMeasurement() {
Return<sp<V1_0::IGnssConfiguration>> Gnss::getExtensionGnssConfiguration() {
ENTRY_LOG_CALLFLOW();
- mGnssConfig = new GnssConfiguration(this);
+ if (mGnssConfig == nullptr) {
+ mGnssConfig = new GnssConfiguration(this);
+ }
return mGnssConfig;
}
Return<sp<V1_0::IGnssGeofencing>> Gnss::getExtensionGnssGeofencing() {
ENTRY_LOG_CALLFLOW();
- mGnssGeofencingIface = new GnssGeofencing();
+ if (mGnssGeofencingIface == nullptr) {
+ mGnssGeofencingIface = new GnssGeofencing();
+ }
return mGnssGeofencingIface;
}
Return<sp<V1_0::IGnssBatching>> Gnss::getExtensionGnssBatching() {
ENTRY_LOG_CALLFLOW();
- mGnssBatching = new GnssBatching();
+ if (mGnssBatching == nullptr) {
+ mGnssBatching = new GnssBatching();
+ }
return mGnssBatching;
}
Return<sp<V1_0::IGnssDebug>> Gnss::getExtensionGnssDebug() {
ENTRY_LOG_CALLFLOW();
- mGnssDebug = new GnssDebug(this);
+ if (mGnssDebug == nullptr) {
+ mGnssDebug = new GnssDebug(this);
+ }
return mGnssDebug;
}
Return<sp<V1_0::IAGnssRil>> Gnss::getExtensionAGnssRil() {
ENTRY_LOG_CALLFLOW();
- mGnssRil = new AGnssRil(this);
+ if (mGnssRil == nullptr) {
+ mGnssRil = new AGnssRil(this);
+ }
return mGnssRil;
}
@@ -589,17 +599,23 @@ Return<bool> Gnss::setCallback_2_0(const sp<V2_0::IGnssCallback>& callback) {
Return<sp<V2_0::IAGnss>> Gnss::getExtensionAGnss_2_0() {
ENTRY_LOG_CALLFLOW();
- mAGnssIface_2_0 = new AGnss(this);
+ if (mAGnssIface_2_0 == nullptr) {
+ mAGnssIface_2_0 = new AGnss(this);
+ }
return mAGnssIface_2_0;
}
Return<sp<V2_0::IAGnssRil>> Gnss::getExtensionAGnssRil_2_0() {
- mGnssRil = new AGnssRil(this);
+ if (mGnssRil == nullptr) {
+ mGnssRil = new AGnssRil(this);
+ }
return mGnssRil;
}
Return<sp<V2_0::IGnssConfiguration>> Gnss::getExtensionGnssConfiguration_2_0() {
ENTRY_LOG_CALLFLOW();
- mGnssConfig = new GnssConfiguration(this);
+ if (mGnssConfig == nullptr) {
+ mGnssConfig = new GnssConfiguration(this);
+ }
return mGnssConfig;
}
Return<sp<V2_0::IGnssMeasurement>> Gnss::getExtensionGnssMeasurement_2_0() {
@@ -639,13 +655,17 @@ Return<bool> Gnss::injectBestLocation_2_0(const V2_0::GnssLocation& gnssLocation
Return<sp<V2_0::IGnssDebug>> Gnss::getExtensionGnssDebug_2_0() {
ENTRY_LOG_CALLFLOW();
- mGnssDebug = new GnssDebug(this);
+ if (mGnssDebug == nullptr) {
+ mGnssDebug = new GnssDebug(this);
+ }
return mGnssDebug;
}
Return<sp<V2_0::IGnssBatching>> Gnss::getExtensionGnssBatching_2_0() {
ENTRY_LOG_CALLFLOW();
- mGnssBatching = new GnssBatching();
+ if (mGnssBatching == nullptr) {
+ mGnssBatching = new GnssBatching();
+ }
return mGnssBatching;
}