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

Commit 18b228ca authored by Jooyung Han's avatar Jooyung Han
Browse files

Use aidl::nullable for nullable type in C++

To reduce the discrepance between old code which still uses
std::unique_ptr and new code using std::optional.

This might help to avoid merge-conflicts between branches.

Bug: 144773267
Test: m

Merged-In: I33822bc76ef87637d5408849f64a0607e121792e
Change-Id: I08b23d5bc08655b89ea89a06dad4830d14b070bb
Exempt-From-Owner-Approval: approved from master
(cherry picked from commit c85cc13b)
parent 95c6fb1b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ 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::optional<std::string>* _aidl_return) {
                                  aidl::nullable<std::string>* _aidl_return) {
  assert(_aidl_return);
  SYSTRACE << "Idmap2Service::createIdmap " << target_apk_path << " " << overlay_apk_path;
  _aidl_return->reset();
@@ -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 = idmap_path;
  *_aidl_return = aidl::make_nullable<std::string>(idmap_path);
  return ok();
}

+2 −4
Original line number Diff line number Diff line
@@ -19,9 +19,7 @@

#include <android-base/unique_fd.h>
#include <binder/BinderService.h>

#include <optional>
#include <string>
#include <binder/Nullable.h>

#include "android/os/BnIdmap2.h"

@@ -46,7 +44,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::optional<std::string>* _aidl_return) override;
                             aidl::nullable<std::string>* _aidl_return) override;
};

}  // namespace android::os
+2 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <androidfw/ZipFileRO.h>
#include <androidfw/ZipUtils.h>
#include <binder/BinderService.h>
#include <binder/Nullable.h>
#include <binder/ParcelFileDescriptor.h>
#include <binder/Status.h>
#include <sys/stat.h>
@@ -1082,7 +1083,7 @@ bool IncrementalService::prepareDataLoader(IncrementalService::IncFsMount& ifs,
        return false;
    }
    FileSystemControlParcel fsControlParcel;
    fsControlParcel.incremental = IncrementalFileSystemControlParcel();
    fsControlParcel.incremental = aidl::make_nullable<IncrementalFileSystemControlParcel>();
    fsControlParcel.incremental->cmd.reset(base::unique_fd(::dup(ifs.control.cmd)));
    fsControlParcel.incremental->pendingReads.reset(
            base::unique_fd(::dup(ifs.control.pendingReads)));