[optional] dereference after std::move instead of before.
This is the correct way to move a value out of an optional.
Tested: runtests
Change-Id: I3c0b24eb85f5be0cc91a3fbebc145860ef1b854a
diff --git a/system/dev/audio/astro-pdm-input/audio-stream-in.cpp b/system/dev/audio/astro-pdm-input/audio-stream-in.cpp
index 60b732b..8b8b767 100644
--- a/system/dev/audio/astro-pdm-input/audio-stream-in.cpp
+++ b/system/dev/audio/astro-pdm-input/audio-stream-in.cpp
@@ -79,8 +79,8 @@
return status;
}
- pdm_ = AmlPdmDevice::Create(std::move(*mmio0),
- std::move(*mmio1),
+ pdm_ = AmlPdmDevice::Create(*std::move(mmio0),
+ *std::move(mmio1),
HIFI_PLL, 7, 499, TODDR_B);
if (pdm_ == nullptr) {
zxlogf(ERROR, "%s failed to create pdm device\n", __func__);
diff --git a/system/dev/audio/astro-tdm-output/audio-stream-out.cpp b/system/dev/audio/astro-tdm-output/audio-stream-out.cpp
index 3620891..4feafb2 100644
--- a/system/dev/audio/astro-tdm-output/audio-stream-out.cpp
+++ b/system/dev/audio/astro-tdm-output/audio-stream-out.cpp
@@ -40,7 +40,7 @@
zxlogf(ERROR, "%s failed to allocate i2c\n", __func__);
return ZX_ERR_NO_RESOURCES;
}
- codec_ = Tas27xx::Create(std::move(*i2c));
+ codec_ = Tas27xx::Create(*std::move(i2c));
if (!codec_) {
zxlogf(ERROR, "%s could not get tas27xx\n", __func__);
return ZX_ERR_NO_RESOURCES;
@@ -57,7 +57,7 @@
if (status != ZX_OK) {
return status;
}
- aml_audio_ = AmlTdmDevice::Create(std::move(*mmio),
+ aml_audio_ = AmlTdmDevice::Create(*std::move(mmio),
HIFI_PLL, TDM_OUT_B, FRDDR_B, MCLK_A);
if (aml_audio_ == nullptr) {
zxlogf(ERROR, "%s failed to create tdm device\n", __func__);
diff --git a/system/dev/audio/mt8167-tdm-input/audio-stream-in.cpp b/system/dev/audio/mt8167-tdm-input/audio-stream-in.cpp
index c067f46..874d266 100644
--- a/system/dev/audio/mt8167-tdm-input/audio-stream-in.cpp
+++ b/system/dev/audio/mt8167-tdm-input/audio-stream-in.cpp
@@ -103,7 +103,7 @@
return status;
}
- mt_audio_ = MtAudioInDevice::Create(std::move(*mmio_audio), MtAudioInDevice::I2S3);
+ mt_audio_ = MtAudioInDevice::Create(*std::move(mmio_audio), MtAudioInDevice::I2S3);
if (mt_audio_ == nullptr) {
zxlogf(ERROR, "%s failed to create device\n", __FUNCTION__);
return ZX_ERR_NO_MEMORY;
diff --git a/system/dev/audio/mt8167-tdm-output/audio-stream-out.cpp b/system/dev/audio/mt8167-tdm-output/audio-stream-out.cpp
index b827398..e36d492 100644
--- a/system/dev/audio/mt8167-tdm-output/audio-stream-out.cpp
+++ b/system/dev/audio/mt8167-tdm-output/audio-stream-out.cpp
@@ -75,7 +75,7 @@
}
// I2S2 corresponds to I2S_8CH.
- mt_audio_ = MtAudioOutDevice::Create(std::move(*mmio_audio), MtAudioOutDevice::I2S2);
+ mt_audio_ = MtAudioOutDevice::Create(*std::move(mmio_audio), MtAudioOutDevice::I2S2);
if (mt_audio_ == nullptr) {
zxlogf(ERROR, "%s failed to create device\n", __FUNCTION__);
return ZX_ERR_NO_MEMORY;
diff --git a/system/dev/audio/sherlock-pdm-input/audio-stream-in.cpp b/system/dev/audio/sherlock-pdm-input/audio-stream-in.cpp
index d05a171..dff5e774d 100644
--- a/system/dev/audio/sherlock-pdm-input/audio-stream-in.cpp
+++ b/system/dev/audio/sherlock-pdm-input/audio-stream-in.cpp
@@ -79,8 +79,8 @@
return status;
}
- pdm_ = AmlPdmDevice::Create(std::move(*mmio0),
- std::move(*mmio1),
+ pdm_ = AmlPdmDevice::Create(*std::move(mmio0),
+ *std::move(mmio1),
HIFI_PLL,
7, // clk_div for mclk = T931_HIFI_PLL_RATE/clk_div = 219.43 MHz.
499, // clk_div for pdm_dclk = T931_HIFI_PLL_RATE/clk_div = 3.07MHz.
diff --git a/system/dev/audio/sherlock-tdm-output/audio-stream-out.cpp b/system/dev/audio/sherlock-tdm-output/audio-stream-out.cpp
index 586700a..83ec4db 100644
--- a/system/dev/audio/sherlock-tdm-output/audio-stream-out.cpp
+++ b/system/dev/audio/sherlock-tdm-output/audio-stream-out.cpp
@@ -62,7 +62,7 @@
if (status != ZX_OK) {
return status;
}
- aml_audio_ = AmlTdmDevice::Create(std::move(*mmio), HIFI_PLL, TDM_OUT_C, FRDDR_A, MCLK_A);
+ aml_audio_ = AmlTdmDevice::Create(*std::move(mmio), HIFI_PLL, TDM_OUT_C, FRDDR_A, MCLK_A);
if (aml_audio_ == nullptr) {
zxlogf(ERROR, "%s failed to create tdm device\n", __func__);
return ZX_ERR_NO_MEMORY;
diff --git a/system/dev/block/mtk-sdmmc/mtk-sdmmc.cpp b/system/dev/block/mtk-sdmmc/mtk-sdmmc.cpp
index c26b1bd..afd6fc8 100644
--- a/system/dev/block/mtk-sdmmc/mtk-sdmmc.cpp
+++ b/system/dev/block/mtk-sdmmc/mtk-sdmmc.cpp
@@ -163,7 +163,7 @@
}
fbl::AllocChecker ac;
- fbl::unique_ptr<MtkSdmmc> device(new (&ac) MtkSdmmc(parent, std::move(*mmio), std::move(bti),
+ fbl::unique_ptr<MtkSdmmc> device(new (&ac) MtkSdmmc(parent, *std::move(mmio), std::move(bti),
info, std::move(irq), *reset_gpio,
*power_en_gpio, dev_info, config));
diff --git a/system/dev/clk/mtk-clk/mtk-clk.cpp b/system/dev/clk/mtk-clk/mtk-clk.cpp
index 1ed1e51..1a07641 100644
--- a/system/dev/clk/mtk-clk/mtk-clk.cpp
+++ b/system/dev/clk/mtk-clk/mtk-clk.cpp
@@ -138,7 +138,7 @@
}
fbl::AllocChecker ac;
- fbl::unique_ptr<MtkClk> device(new (&ac) MtkClk(parent, std::move(*mmio)));
+ fbl::unique_ptr<MtkClk> device(new (&ac) MtkClk(parent, *std::move(mmio)));
if (!ac.check()) {
zxlogf(ERROR, "%s: MtkClk alloc failed\n", __FILE__);
return ZX_ERR_NO_MEMORY;
diff --git a/system/dev/input/goodix/gt92xx.cpp b/system/dev/input/goodix/gt92xx.cpp
index 46a50c6..2ba4f67 100644
--- a/system/dev/input/goodix/gt92xx.cpp
+++ b/system/dev/input/goodix/gt92xx.cpp
@@ -113,9 +113,9 @@
return ZX_ERR_NO_RESOURCES;
}
auto goodix_dev = fbl::make_unique<Gt92xxDevice>(device,
- std::move(*i2c),
- std::move(*intr),
- std::move(*reset));
+ *std::move(i2c),
+ *std::move(intr),
+ *std::move(reset));
status = goodix_dev->Init();
if (status != ZX_OK) {
diff --git a/system/dev/lib/operation/include/lib/operation/block.h b/system/dev/lib/operation/include/lib/operation/block.h
index 75e3424..9756190 100644
--- a/system/dev/lib/operation/include/lib/operation/block.h
+++ b/system/dev/lib/operation/include/lib/operation/block.h
@@ -57,7 +57,7 @@
// request = block::Operation::Alloc(op_size, parent_op_size);
//
// if (!request) return ZX_ERR_NO_MEMORY;
-// pool.add(std::move(*request));
+// pool.add(*std::move(request));
// }
//
///////////////////////////////////////////////////////////////////////////////
diff --git a/system/dev/lib/operation/include/lib/operation/nand.h b/system/dev/lib/operation/include/lib/operation/nand.h
index d5a1475..0f5cebe 100644
--- a/system/dev/lib/operation/include/lib/operation/nand.h
+++ b/system/dev/lib/operation/include/lib/operation/nand.h
@@ -61,7 +61,7 @@
// request = nand::Operation::Alloc(op_size, parent_op_size);
//
// if (!request) return ZX_ERR_NO_MEMORY;
-// pool.add(std::move(*request));
+// pool.add(*std::move(request));
// }
//
///////////////////////////////////////////////////////////////////////////////
diff --git a/system/dev/lib/usb/include/usb/request-cpp.h b/system/dev/lib/usb/include/usb/request-cpp.h
index 6121363..05b939d 100644
--- a/system/dev/lib/usb/include/usb/request-cpp.h
+++ b/system/dev/lib/usb/include/usb/request-cpp.h
@@ -72,7 +72,7 @@
// request = usb::Request::Alloc(op_size, DATA_SIZE, EP_ADDRESS, parent_req_size);
//
// if (!request) return ZX_ERR_NO_MEMORY;
-// pool.add(std::move(*request));
+// pool.add(*std::move(request));
// }
//
///////////////////////////////////////////////////////////////////////////////
diff --git a/system/dev/nand/nand/nand.cpp b/system/dev/nand/nand/nand.cpp
index 0c18bd1..cfdaed9 100644
--- a/system/dev/nand/nand/nand.cpp
+++ b/system/dev/nand/nand/nand.cpp
@@ -200,7 +200,7 @@
// between each io.
std::optional<Transaction> txn = txn_queue_.pop();
if (txn) {
- DoIo(std::move(*txn));
+ DoIo(*std::move(txn));
} else {
// Clear the "RECEIVED" flag under the lock.
worker_event_.signal(kNandTxnReceived, 0);
diff --git a/system/dev/pci/amlogic-pcie/aml-pcie-device.cpp b/system/dev/pci/amlogic-pcie/aml-pcie-device.cpp
index 56a363b..47a20f9 100644
--- a/system/dev/pci/amlogic-pcie/aml-pcie-device.cpp
+++ b/system/dev/pci/amlogic-pcie/aml-pcie-device.cpp
@@ -83,7 +83,7 @@
zxlogf(ERROR, "aml_pcie: failed to pin DBI, st = %d\n", st);
return st;
}
- dbi_pinned_ = std::move(*mmio_pinned);
+ dbi_pinned_ = *std::move(mmio_pinned);
st = pdev_map_mmio_buffer(&pdev_, kCfgMmio,
ZX_CACHE_POLICY_UNCACHED_DEVICE, &mmio);
@@ -184,9 +184,9 @@
if (st != ZX_OK) return st;
pcie_ = fbl::make_unique<AmlPcie>(
- std::move(*dbi_),
- std::move(*cfg_),
- std::move(*rst_),
+ *std::move(dbi_),
+ *std::move(cfg_),
+ *std::move(rst_),
1 // Single Lane PCIe
);
diff --git a/system/dev/tee/optee/shared-memory.cpp b/system/dev/tee/optee/shared-memory.cpp
index 8db94bc..e6aa37d 100644
--- a/system/dev/tee/optee/shared-memory.cpp
+++ b/system/dev/tee/optee/shared-memory.cpp
@@ -67,7 +67,7 @@
secure_world_paddr + shared_mem_offset,
shared_mem_size,
std::move(secure_world_memory),
- std::move(*pinned)));
+ *std::move(pinned)));
if (!ac.check()) {
return ZX_ERR_NO_MEMORY;
diff --git a/system/dev/test/operation/operation-pool-test.cpp b/system/dev/test/operation/operation-pool-test.cpp
index ed3dcd5..8c0bc28 100644
--- a/system/dev/test/operation/operation-pool-test.cpp
+++ b/system/dev/test/operation/operation-pool-test.cpp
@@ -80,7 +80,7 @@
OperationPool pool;
EXPECT_TRUE(pool.pop() == std::nullopt);
- pool.push(std::move(*operation));
+ pool.push(*std::move(operation));
EXPECT_TRUE(pool.pop() != std::nullopt);
EXPECT_TRUE(pool.pop() == std::nullopt);
END_TEST;
@@ -93,7 +93,7 @@
for (size_t i = 0; i < 10; i++) {
std::optional<Operation> operation = Operation::Alloc(kParentOpSize);
ASSERT_TRUE(operation.has_value());
- pool.push(std::move(*operation));
+ pool.push(*std::move(operation));
}
for (size_t i = 0; i < 10; i++) {
@@ -110,7 +110,7 @@
for (size_t i = 0; i < 10; i++) {
std::optional<Operation> operation = Operation::Alloc(kParentOpSize);
ASSERT_TRUE(operation.has_value());
- pool.push(std::move(*operation));
+ pool.push(*std::move(operation));
}
pool.Release();
diff --git a/system/dev/test/operation/operation-queue-test.cpp b/system/dev/test/operation/operation-queue-test.cpp
index 36ba3bd..1c02c63 100644
--- a/system/dev/test/operation/operation-queue-test.cpp
+++ b/system/dev/test/operation/operation-queue-test.cpp
@@ -82,7 +82,7 @@
OperationQueue queue;
EXPECT_TRUE(queue.pop() == std::nullopt);
- queue.push(std::move(*operation));
+ queue.push(*std::move(operation));
EXPECT_TRUE(queue.pop() != std::nullopt);
EXPECT_TRUE(queue.pop() == std::nullopt);
END_TEST;
@@ -95,7 +95,7 @@
for (size_t i = 0; i < 10; i++) {
std::optional<Operation> operation = Operation::Alloc(kParentOpSize);
ASSERT_TRUE(operation.has_value());
- queue.push(std::move(*operation));
+ queue.push(*std::move(operation));
}
for (size_t i = 0; i < 10; i++) {
@@ -112,7 +112,7 @@
for (size_t i = 0; i < 10; i++) {
std::optional<Operation> operation = Operation::Alloc(kParentOpSize);
ASSERT_TRUE(operation.has_value());
- queue.push(std::move(*operation));
+ queue.push(*std::move(operation));
}
queue.Release();
@@ -133,7 +133,7 @@
for (size_t i = 0; i < 10; i++) {
std::optional<SecondLayerOp> operation = SecondLayerOp::Alloc(kFirstLayerOpSize);
ASSERT_TRUE(operation.has_value());
- queue.push(std::move(*operation));
+ queue.push(*std::move(operation));
}
UnownedOperationQueue queue2;
@@ -181,7 +181,7 @@
ASSERT_TRUE(operation.has_value());
*operation->private_storage() = i;
EXPECT_EQ(*operation->private_storage(), i);
- queue.push(std::move(*operation));
+ queue.push(*std::move(operation));
}
operation::UnownedOperationQueue<FirstLayerOp, TestOpTraits, CallbackTraits, char> queue2;
@@ -231,7 +231,7 @@
ASSERT_TRUE(operation.has_value());
*operation->private_storage() = i;
EXPECT_EQ(*operation->private_storage(), i);
- queue.push(std::move(*operation));
+ queue.push(*std::move(operation));
}
auto callback = [](void* ctx, zx_status_t status, TestOp* operation) {
diff --git a/system/dev/test/usb/usb-request-pool-test.cpp b/system/dev/test/usb/usb-request-pool-test.cpp
index d8afac0..4e3601c 100644
--- a/system/dev/test/usb/usb-request-pool-test.cpp
+++ b/system/dev/test/usb/usb-request-pool-test.cpp
@@ -27,7 +27,7 @@
usb::RequestPool pool;
EXPECT_TRUE(pool.Get(kReqSize) == std::nullopt);
- pool.Add(std::move(*request));
+ pool.Add(*std::move(request));
EXPECT_TRUE(pool.Get(kReqSize + 1) == std::nullopt);
EXPECT_TRUE(pool.Get(kReqSize) != std::nullopt);
EXPECT_TRUE(pool.Get(kReqSize) == std::nullopt);
@@ -42,7 +42,7 @@
std::optional<Request> request;
ASSERT_EQ(Request::Alloc(&request, 0, 0, kParentReqSize),
ZX_OK);
- pool.Add(std::move(*request));
+ pool.Add(*std::move(request));
}
for (size_t i = 0; i < 10; i++) {
@@ -61,7 +61,7 @@
std::optional<Request> request;
ASSERT_EQ(Request::Alloc(&request, 0, 0, size),
ZX_OK);
- pool.Add(std::move(*request));
+ pool.Add(*std::move(request));
}
for (size_t i = 0; i < 10; i++) {
@@ -80,7 +80,7 @@
std::optional<Request> request;
ASSERT_EQ(Request::Alloc(&request, 0, 0, kParentReqSize),
ZX_OK);
- pool.Add(std::move(*request));
+ pool.Add(*std::move(request));
}
pool.Release();
diff --git a/system/dev/test/usb/usb-request-queue-test.cpp b/system/dev/test/usb/usb-request-queue-test.cpp
index 102c75f..695b041 100644
--- a/system/dev/test/usb/usb-request-queue-test.cpp
+++ b/system/dev/test/usb/usb-request-queue-test.cpp
@@ -28,7 +28,7 @@
usb::RequestQueue<void> queue;
EXPECT_TRUE(queue.pop() == std::nullopt);
- queue.push(std::move(*request));
+ queue.push(*std::move(request));
EXPECT_TRUE(queue.pop() != std::nullopt);
EXPECT_TRUE(queue.pop() == std::nullopt);
END_TEST;
@@ -42,7 +42,7 @@
std::optional<Request> request;
ASSERT_EQ(Request::Alloc(&request, 0, 0, kParentReqSize),
ZX_OK);
- queue.push(std::move(*request));
+ queue.push(*std::move(request));
}
for (size_t i = 0; i < 10; i++) {
@@ -61,7 +61,7 @@
std::optional<Request> request;
ASSERT_EQ(Request::Alloc(&request, 0, 0, kParentReqSize),
ZX_OK);
- queue1.push(std::move(*request));
+ queue1.push(*std::move(request));
}
queue2 = std::move(queue1);
@@ -82,7 +82,7 @@
std::optional<Request> request;
ASSERT_EQ(Request::Alloc(&request, 0, 0, kParentReqSize),
ZX_OK);
- queue.push(std::move(*request));
+ queue.push(*std::move(request));
}
queue.Release();
@@ -104,7 +104,7 @@
std::optional<SecondLayerReq> request;
ASSERT_EQ(SecondLayerReq::Alloc(&request, 0, 0, kFirstLayerReqSize),
ZX_OK);
- queue.push(std::move(*request));
+ queue.push(*std::move(request));
}
usb::UnownedRequestQueue<void> queue2;
@@ -143,7 +143,7 @@
ZX_OK);
*request->private_storage() = i;
EXPECT_EQ(*request->private_storage(), i);
- queue.push(std::move(*request));
+ queue.push(*std::move(request));
}
usb::UnownedRequestQueue<char> queue2;
@@ -185,7 +185,7 @@
ZX_OK);
*request->private_storage() = i;
EXPECT_EQ(*request->private_storage(), i);
- queue.push(std::move(*request));
+ queue.push(*std::move(request));
}
auto callback = [](void* ctx, usb_request_t* request) {
diff --git a/system/dev/thermal/mtk-thermal/mtk-thermal.cpp b/system/dev/thermal/mtk-thermal/mtk-thermal.cpp
index 9808b83..ef00109 100644
--- a/system/dev/thermal/mtk-thermal/mtk-thermal.cpp
+++ b/system/dev/thermal/mtk-thermal/mtk-thermal.cpp
@@ -125,8 +125,8 @@
fbl::AllocChecker ac;
fbl::unique_ptr<MtkThermal> device(new (&ac) MtkThermal(
- parent, std::move(*mmio), std::move(*fuse_mmio), std::move(*pll_mmio),
- std::move(*pmic_mmio), clk, info, thermal_info, std::move(port), std::move(irq)));
+ parent, *std::move(mmio), *std::move(fuse_mmio), *std::move(pll_mmio),
+ *std::move(pmic_mmio), clk, info, thermal_info, std::move(port), std::move(irq)));
if (!ac.check()) {
zxlogf(ERROR, "%s: MtkThermal alloc failed\n", __FILE__);
return ZX_ERR_NO_MEMORY;
diff --git a/system/dev/usb/usb-virtual-bus/usb-virtual-bus.cpp b/system/dev/usb/usb-virtual-bus/usb-virtual-bus.cpp
index 669a158..648e07e 100644
--- a/system/dev/usb/usb-virtual-bus/usb-virtual-bus.cpp
+++ b/system/dev/usb/usb-virtual-bus/usb-virtual-bus.cpp
@@ -127,7 +127,7 @@
// special case endpoint zero
for (auto request = eps_[0].host_reqs.pop(); request; request = eps_[0].host_reqs.pop()) {
// Handle control requests outside of the lock to avoid deadlock.
- HandleControl(std::move(*request));
+ HandleControl(*std::move(request));
}
for (unsigned i = 1; i < USB_MAX_EPS; i++) {
@@ -167,7 +167,7 @@
ep->req_offset = 0;
} else {
ep->req_offset = offset;
- ep->host_reqs.push_next(std::move(*req));
+ ep->host_reqs.push_next(*std::move(req));
}
device_req->Complete(ZX_OK, length);
diff --git a/system/uapp/disk-pave/test/device-partitioner-test.cpp b/system/uapp/disk-pave/test/device-partitioner-test.cpp
index 918e59b..dbe0035 100644
--- a/system/uapp/disk-pave/test/device-partitioner-test.cpp
+++ b/system/uapp/disk-pave/test/device-partitioner-test.cpp
@@ -239,7 +239,7 @@
ASSERT_EQ(fs_mgmt::RamNandCtl::Create(&ctl), ZX_OK);
std::optional<fs_mgmt::RamNand> ram_nand;
ASSERT_EQ(fs_mgmt::RamNand::Create(ctl, &info, &ram_nand), ZX_OK);
- device->reset(new SkipBlockDevice(std::move(ctl), std::move(*ram_nand),
+ device->reset(new SkipBlockDevice(std::move(ctl), *std::move(ram_nand),
std::move(mapper)));
END_HELPER;
}
diff --git a/system/ulib/blobfs/allocator.cpp b/system/ulib/blobfs/allocator.cpp
index 36e7d59..6993808 100644
--- a/system/ulib/blobfs/allocator.cpp
+++ b/system/ulib/blobfs/allocator.cpp
@@ -184,7 +184,7 @@
out_nodes->reset();
return ZX_ERR_NO_SPACE;
}
- out_nodes->push_back(std::move(*node));
+ out_nodes->push_back(*std::move(node));
}
return ZX_OK;
}