Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 53be7f4d authored by Jooyung Han's avatar Jooyung Han
Browse files

Use optional for nullable types

AIDL generates optional<T> for nullable T types for C++, which is more
efficient and idomatic and easy to use.

Bug: 144773267
Test: build/flash/boot
Change-Id: I90cf2ce1193c479179687d71a5c1416f6cdf0b16
parent 577c74b8
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -113,10 +113,10 @@ Status Idmap2Service::verifyIdmap(const std::string& overlay_apk_path,
Status Idmap2Service::createIdmap(const std::string& target_apk_path,
                                  const std::string& overlay_apk_path, int32_t fulfilled_policies,
                                  bool enforce_overlayable, int32_t user_id ATTRIBUTE_UNUSED,
                                  std::unique_ptr<std::string>* _aidl_return) {
                                  std::optional<std::string>* _aidl_return) {
  assert(_aidl_return);
  SYSTRACE << "Idmap2Service::createIdmap " << target_apk_path << " " << overlay_apk_path;
  _aidl_return->reset(nullptr);
  _aidl_return->reset();

  const PolicyBitmask policy_bitmask = ConvertAidlArgToPolicyBitmask(fulfilled_policies);

@@ -155,7 +155,7 @@ Status Idmap2Service::createIdmap(const std::string& target_apk_path,
    return error("failed to write to idmap path " + idmap_path);
  }

  *_aidl_return = std::make_unique<std::string>(idmap_path);
  *_aidl_return = idmap_path;
  return ok();
}

+2 −2
Original line number Diff line number Diff line
@@ -20,7 +20,7 @@
#include <android-base/unique_fd.h>
#include <binder/BinderService.h>

#include <memory>
#include <optional>
#include <string>

#include "android/os/BnIdmap2.h"
@@ -46,7 +46,7 @@ class Idmap2Service : public BinderService<Idmap2Service>, public BnIdmap2 {
  binder::Status createIdmap(const std::string& target_apk_path,
                             const std::string& overlay_apk_path, int32_t fulfilled_policies,
                             bool enforce_overlayable, int32_t user_id,
                             std::unique_ptr<std::string>* _aidl_return) override;
                             std::optional<std::string>* _aidl_return) override;
};

}  // namespace android::os
+1 −1
Original line number Diff line number Diff line
@@ -1013,7 +1013,7 @@ bool IncrementalService::prepareDataLoader(IncrementalService::IncFsMount& ifs,
        return false;
    }
    FileSystemControlParcel fsControlParcel;
    fsControlParcel.incremental = std::make_unique<IncrementalFileSystemControlParcel>();
    fsControlParcel.incremental = IncrementalFileSystemControlParcel();
    fsControlParcel.incremental->cmd.reset(base::unique_fd(::dup(ifs.control.cmd)));
    fsControlParcel.incremental->pendingReads.reset(
            base::unique_fd(::dup(ifs.control.pendingReads)));