Loading fastboot/fastboot.cpp +9 −7 Original line number Diff line number Diff line Loading @@ -1631,13 +1631,13 @@ void FlashAllTool::Flash() { update_super_task->Run(); // Resize any logical partition to 0, so each partition is reset to 0 // extents, and will achieve more optimal allocation. std::vector<std::unique_ptr<ResizeTask>> resize_tasks; for (const auto& [image, slot] : os_images_) { auto resize_partition = [](const std::string& partition) -> void { if (is_logical(partition)) { fb->ResizePartition(partition, "0"); resize_tasks.emplace_back( std::make_unique<ResizeTask>(fp_, image->part_name, "0", slot)); } }; do_for_partitions(image->part_name, slot, resize_partition, false); for (auto& i : resize_tasks) { i->Run(); } } FlashImages(os_images_); Loading Loading @@ -2356,7 +2356,9 @@ int FastBootTool::Main(int argc, char* argv[]) { } else if (command == FB_CMD_RESIZE_PARTITION) { std::string partition = next_arg(&args); std::string size = next_arg(&args); fb->ResizePartition(partition, size); std::unique_ptr<ResizeTask> resize_task = std::make_unique<ResizeTask>(fp.get(), partition, size, slot_override); resize_task->Run(); } else if (command == "gsi") { std::string arg = next_arg(&args); if (arg == "wipe") { Loading fastboot/task.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -167,3 +167,16 @@ void UpdateSuperTask::Run() { } fp_->fb->RawCommand(command, "Updating super partition"); } ResizeTask::ResizeTask(FlashingPlan* fp, const std::string& pname, const std::string& size, const std::string& slot) : fp_(fp), pname_(pname), size_(size), slot_(slot) {} void ResizeTask::Run() { auto resize_partition = [this](const std::string& partition) -> void { if (is_logical(partition)) { fp_->fb->ResizePartition(partition, size_); } }; do_for_partitions(pname_, slot_, resize_partition, false); } fastboot/task.h +13 −0 Original line number Diff line number Diff line Loading @@ -79,3 +79,16 @@ class UpdateSuperTask : public Task { private: FlashingPlan* fp_; }; class ResizeTask : public Task { public: ResizeTask(FlashingPlan* fp, const std::string& pname, const std::string& size, const std::string& slot); void Run() override; private: FlashingPlan* fp_; const std::string pname_; const std::string size_; const std::string slot_; }; Loading
fastboot/fastboot.cpp +9 −7 Original line number Diff line number Diff line Loading @@ -1631,13 +1631,13 @@ void FlashAllTool::Flash() { update_super_task->Run(); // Resize any logical partition to 0, so each partition is reset to 0 // extents, and will achieve more optimal allocation. std::vector<std::unique_ptr<ResizeTask>> resize_tasks; for (const auto& [image, slot] : os_images_) { auto resize_partition = [](const std::string& partition) -> void { if (is_logical(partition)) { fb->ResizePartition(partition, "0"); resize_tasks.emplace_back( std::make_unique<ResizeTask>(fp_, image->part_name, "0", slot)); } }; do_for_partitions(image->part_name, slot, resize_partition, false); for (auto& i : resize_tasks) { i->Run(); } } FlashImages(os_images_); Loading Loading @@ -2356,7 +2356,9 @@ int FastBootTool::Main(int argc, char* argv[]) { } else if (command == FB_CMD_RESIZE_PARTITION) { std::string partition = next_arg(&args); std::string size = next_arg(&args); fb->ResizePartition(partition, size); std::unique_ptr<ResizeTask> resize_task = std::make_unique<ResizeTask>(fp.get(), partition, size, slot_override); resize_task->Run(); } else if (command == "gsi") { std::string arg = next_arg(&args); if (arg == "wipe") { Loading
fastboot/task.cpp +13 −0 Original line number Diff line number Diff line Loading @@ -167,3 +167,16 @@ void UpdateSuperTask::Run() { } fp_->fb->RawCommand(command, "Updating super partition"); } ResizeTask::ResizeTask(FlashingPlan* fp, const std::string& pname, const std::string& size, const std::string& slot) : fp_(fp), pname_(pname), size_(size), slot_(slot) {} void ResizeTask::Run() { auto resize_partition = [this](const std::string& partition) -> void { if (is_logical(partition)) { fp_->fb->ResizePartition(partition, size_); } }; do_for_partitions(pname_, slot_, resize_partition, false); }
fastboot/task.h +13 −0 Original line number Diff line number Diff line Loading @@ -79,3 +79,16 @@ class UpdateSuperTask : public Task { private: FlashingPlan* fp_; }; class ResizeTask : public Task { public: ResizeTask(FlashingPlan* fp, const std::string& pname, const std::string& size, const std::string& slot); void Run() override; private: FlashingPlan* fp_; const std::string pname_; const std::string size_; const std::string slot_; };