sm8450-common: nonui-notifier: Switch to shared_ptr to avoid memory leaks
Change-Id: I950bd5f6abd1dd78093864f5813ab22f0e093ded
This commit is contained in:
@@ -6,7 +6,9 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include <display/drm/mi_disp.h>
|
||||
|
||||
bool readBool(int fd);
|
||||
disp_event_resp* parseDispEvent(int fd);
|
||||
std::shared_ptr<disp_event_resp> parseDispEvent(int fd);
|
||||
|
@@ -91,7 +91,7 @@ void AodNotifier::notify() {
|
||||
continue;
|
||||
}
|
||||
|
||||
struct disp_event_resp* response = parseDispEvent(disp_fd_.get());
|
||||
std::shared_ptr<disp_event_resp> response = parseDispEvent(disp_fd_.get());
|
||||
if (response == nullptr) {
|
||||
continue;
|
||||
}
|
||||
|
@@ -93,7 +93,7 @@ void LightNotifier::notify() {
|
||||
continue;
|
||||
}
|
||||
|
||||
struct disp_event_resp* response = parseDispEvent(disp_fd_.get());
|
||||
std::shared_ptr<disp_event_resp> response = parseDispEvent(disp_fd_.get());
|
||||
if (response == nullptr) {
|
||||
continue;
|
||||
}
|
||||
|
@@ -29,7 +29,7 @@ bool readBool(int fd) {
|
||||
return c != '0';
|
||||
}
|
||||
|
||||
disp_event_resp* parseDispEvent(int fd) {
|
||||
std::shared_ptr<disp_event_resp> parseDispEvent(int fd) {
|
||||
disp_event header;
|
||||
ssize_t headerSize = read(fd, &header, sizeof(header));
|
||||
if (headerSize < sizeof(header)) {
|
||||
@@ -37,8 +37,12 @@ disp_event_resp* parseDispEvent(int fd) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
struct disp_event_resp* response =
|
||||
reinterpret_cast<struct disp_event_resp*>(malloc(header.length));
|
||||
std::shared_ptr<disp_event_resp> response(static_cast<disp_event_resp*>(malloc(header.length)),
|
||||
free);
|
||||
if (!response) {
|
||||
LOG(ERROR) << "failed to allocate memory for display event response";
|
||||
return nullptr;
|
||||
}
|
||||
response->base = header;
|
||||
|
||||
int dataLength = response->base.length - sizeof(response->base);
|
||||
|
Reference in New Issue
Block a user