summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2021-04-13 08:32:34 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-04-13 08:32:34 +0000
commitc047af24ff8a9e43f67e0b156b4ec5da8a60bb50 (patch)
tree0f46578bbb54fc987b42ee705266be45834d8ded
parent539efb33b7addbd589de9f11f04b205923cff341 (diff)
parent7ecc69ca3602a2db9ac9d2610f93421910c5de99 (diff)
downloadril-c047af24ff8a9e43f67e0b156b4ec5da8a60bb50.tar.gz
Merge "Remove local dynamic array" am: 33dda50e8a am: ff7fde0faf am: 7ecc69ca36
Original change: https://android-review.googlesource.com/c/platform/hardware/ril/+/1666339 Change-Id: I5e54e21bcd411b93f9190bd74a017ff72f114eea
-rwxr-xr-xlibril/ril_service.cpp33
1 files changed, 22 insertions, 11 deletions
diff --git a/libril/ril_service.cpp b/libril/ril_service.cpp
index 123f3e2..77c2e61 100755
--- a/libril/ril_service.cpp
+++ b/libril/ril_service.cpp
@@ -1798,17 +1798,21 @@ Return<void> RadioImpl::setGsmBroadcastConfig(int32_t serial,
return Void();
}
- int num = configInfo.size();
+ uint32_t num = configInfo.size();
if (num > MAX_BROADCAST_SMS_CONFIG_INFO) {
RLOGE("setGsmBroadcastConfig: Invalid configInfo length %s",
requestToString(pRI->pCI->requestNumber));
sendErrorResponse(pRI, RIL_E_INVALID_ARGUMENTS);
return Void();
}
- RIL_GSM_BroadcastSmsConfigInfo gsmBci[num];
- RIL_GSM_BroadcastSmsConfigInfo *gsmBciPtrs[num];
+ auto gsmBci = new RIL_GSM_BroadcastSmsConfigInfo[num];
+ if (gsmBci == nullptr) {
+ sendErrorResponse(pRI, RIL_E_NO_MEMORY);
+ return Void();
+ }
+ std::vector<RIL_GSM_BroadcastSmsConfigInfo*> gsmBciPtrs(num);
- for (int i = 0 ; i < num ; i++ ) {
+ for (uint32_t i = 0 ; i < num ; i++ ) {
gsmBciPtrs[i] = &gsmBci[i];
gsmBci[i].fromServiceId = configInfo[i].fromServiceId;
gsmBci[i].toServiceId = configInfo[i].toServiceId;
@@ -1817,8 +1821,10 @@ Return<void> RadioImpl::setGsmBroadcastConfig(int32_t serial,
gsmBci[i].selected = BOOL_TO_INT(configInfo[i].selected);
}
- CALL_ONREQUEST(pRI->pCI->requestNumber, gsmBciPtrs,
+ CALL_ONREQUEST(pRI->pCI->requestNumber, gsmBciPtrs.data(),
num * sizeof(RIL_GSM_BroadcastSmsConfigInfo *), pRI, mSlotId);
+
+ delete []gsmBci;
return Void();
}
@@ -1851,25 +1857,30 @@ Return<void> RadioImpl::setCdmaBroadcastConfig(int32_t serial,
return Void();
}
- int num = configInfo.size();
+ uint32_t num = configInfo.size();
if (num > MAX_BROADCAST_SMS_CONFIG_INFO) {
RLOGE("setCdmaBroadcastConfig: Invalid configInfo length %s",
requestToString(pRI->pCI->requestNumber));
sendErrorResponse(pRI, RIL_E_INVALID_ARGUMENTS);
return Void();
}
- RIL_CDMA_BroadcastSmsConfigInfo cdmaBci[num];
- RIL_CDMA_BroadcastSmsConfigInfo *cdmaBciPtrs[num];
-
- for (int i = 0 ; i < num ; i++ ) {
+ auto cdmaBci = new RIL_CDMA_BroadcastSmsConfigInfo[num];
+ if (cdmaBci == nullptr) {
+ sendErrorResponse(pRI, RIL_E_NO_MEMORY);
+ return Void();
+ }
+ std::vector<RIL_CDMA_BroadcastSmsConfigInfo*> cdmaBciPtrs(num);
+ for (uint32_t i = 0 ; i < num ; i++ ) {
cdmaBciPtrs[i] = &cdmaBci[i];
cdmaBci[i].service_category = configInfo[i].serviceCategory;
cdmaBci[i].language = configInfo[i].language;
cdmaBci[i].selected = BOOL_TO_INT(configInfo[i].selected);
}
- CALL_ONREQUEST(pRI->pCI->requestNumber, cdmaBciPtrs,
+ CALL_ONREQUEST(pRI->pCI->requestNumber, cdmaBciPtrs.data(),
num * sizeof(RIL_CDMA_BroadcastSmsConfigInfo *), pRI, mSlotId);
+
+ delete []cdmaBci;
return Void();
}