Merge "mCallback defined in BringYourOwnSection should be an object instead of a reference." into rvc-dev

This commit is contained in:
Wenjie Zhou
2020-05-15 02:06:30 +00:00
committed by Android (Google) Code Review
4 changed files with 10 additions and 7 deletions

View File

@@ -351,9 +351,9 @@ Status IncidentService::reportIncidentToDumpstate(unique_fd stream,
Status IncidentService::registerSection(const int id, const String16& name16, Status IncidentService::registerSection(const int id, const String16& name16,
const sp<IIncidentDumpCallback>& callback) { const sp<IIncidentDumpCallback>& callback) {
const char* name = String8(name16).c_str(); const String8 name = String8(name16);
const uid_t callingUid = IPCThreadState::self()->getCallingUid(); const uid_t callingUid = IPCThreadState::self()->getCallingUid();
ALOGI("Uid %d registers section %d '%s'", callingUid, id, name); ALOGI("Uid %d registers section %d '%s'", callingUid, id, name.c_str());
if (callback == nullptr) { if (callback == nullptr) {
return Status::fromExceptionCode(Status::EX_NULL_POINTER); return Status::fromExceptionCode(Status::EX_NULL_POINTER);
} }
@@ -363,11 +363,11 @@ Status IncidentService::registerSection(const int id, const String16& name16,
ALOGW("Error registering section %d: calling uid does not match", id); ALOGW("Error registering section %d: calling uid does not match", id);
return Status::fromExceptionCode(Status::EX_SECURITY); return Status::fromExceptionCode(Status::EX_SECURITY);
} }
mRegisteredSections.at(i) = new BringYourOwnSection(id, name, callingUid, callback); mRegisteredSections.at(i) = new BringYourOwnSection(id, name.c_str(), callingUid, callback);
return Status::ok(); return Status::ok();
} }
} }
mRegisteredSections.push_back(new BringYourOwnSection(id, name, callingUid, callback)); mRegisteredSections.push_back(new BringYourOwnSection(id, name.c_str(), callingUid, callback));
return Status::ok(); return Status::ok();
} }

View File

@@ -876,7 +876,9 @@ BringYourOwnSection::~BringYourOwnSection() {}
status_t BringYourOwnSection::BlockingCall(unique_fd& pipeWriteFd) const { status_t BringYourOwnSection::BlockingCall(unique_fd& pipeWriteFd) const {
android::os::ParcelFileDescriptor pfd(std::move(pipeWriteFd)); android::os::ParcelFileDescriptor pfd(std::move(pipeWriteFd));
mCallback->onDumpSection(pfd); if(mCallback != nullptr) {
mCallback->onDumpSection(pfd);
}
return NO_ERROR; return NO_ERROR;
} }

View File

@@ -207,7 +207,7 @@ public:
virtual status_t BlockingCall(unique_fd& pipeWriteFd) const; virtual status_t BlockingCall(unique_fd& pipeWriteFd) const;
private: private:
const sp<IIncidentDumpCallback>& mCallback; const sp<IIncidentDumpCallback> mCallback;
}; };

View File

@@ -25,7 +25,8 @@ import android.os.ParcelFileDescriptor;
*/ */
oneway interface IIncidentDumpCallback { oneway interface IIncidentDumpCallback {
/** /**
* Dumps section data to the given ParcelFileDescriptor. * Dumps section data to the given ParcelFileDescriptor, which needs to be
* closed properly after writing the data.
*/ */
void onDumpSection(in ParcelFileDescriptor fd); void onDumpSection(in ParcelFileDescriptor fd);
} }