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

Commit b8ba2341 authored by Jiyong Park's avatar Jiyong Park
Browse files

unique_fd is passed by value in AIDL interfaces

FileDescriptor type in AIDL was translated into const unique_fd& in C++.
Now, it is unique_fd, i.e. passed by value, to make it easier to keep it
beyond the scope of the call.

Bug: 144943748
Test: m
Change-Id: I2b87761401361f9cf96cdda070f26e70a5c6c935
parent c850bdbe
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -375,7 +375,7 @@ main(int argc, char** argv)
    if (destination == DEST_STDOUT) {
        // Call into the service
        sp<StatusListener> listener(new StatusListener());
        status = service->reportIncidentToStream(args, listener, writeEnd);
        status = service->reportIncidentToStream(args, listener, std::move(writeEnd));

        if (!status.isOk()) {
            fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().string());
@@ -388,7 +388,7 @@ main(int argc, char** argv)
    } else if (destination == DEST_DUMPSTATE) {
        // Call into the service
        sp<StatusListener> listener(new StatusListener());
        status = service->reportIncidentToDumpstate(writeEnd, listener);
        status = service->reportIncidentToDumpstate(std::move(writeEnd), listener);
        if (!status.isOk()) {
            fprintf(stderr, "reportIncident returned \"%s\"\n", status.toString8().string());
            return 1;
+2 −2
Original line number Diff line number Diff line
@@ -279,7 +279,7 @@ Status IncidentService::reportIncident(const IncidentReportArgs& args) {

Status IncidentService::reportIncidentToStream(const IncidentReportArgs& args,
                                               const sp<IIncidentReportStatusListener>& listener,
                                               const unique_fd& stream) {
                                               unique_fd stream) {
    IncidentReportArgs argsCopy(args);

    // Streaming reports can not also be broadcast.
@@ -306,7 +306,7 @@ Status IncidentService::reportIncidentToStream(const IncidentReportArgs& args,
    return Status::ok();
}

Status IncidentService::reportIncidentToDumpstate(const unique_fd& stream,
Status IncidentService::reportIncidentToDumpstate(unique_fd stream,
        const sp<IIncidentReportStatusListener>& listener) {
    uid_t caller = IPCThreadState::self()->getCallingUid();
    if (caller != AID_ROOT && caller != AID_SHELL) {
+2 −2
Original line number Diff line number Diff line
@@ -121,9 +121,9 @@ public:

    virtual Status reportIncidentToStream(const IncidentReportArgs& args,
                                          const sp<IIncidentReportStatusListener>& listener,
                                          const unique_fd& stream);
                                          unique_fd stream);

    virtual Status reportIncidentToDumpstate(const unique_fd& stream,
    virtual Status reportIncidentToDumpstate(unique_fd stream,
            const sp<IIncidentReportStatusListener>& listener);

    virtual Status systemRunning();