Merge "sdm: Fix memory leak in connector modes"

This commit is contained in:
Linux Build Service Account
2017-08-04 17:37:32 -07:00
committed by Gerrit - the friendly Code Review server
3 changed files with 5 additions and 6 deletions

View File

@@ -407,8 +407,7 @@ struct DRMConnectorInfo {
uint32_t mmWidth;
uint32_t mmHeight;
uint32_t type;
uint32_t num_modes;
drmModeModeInfo *modes;
std::vector<drmModeModeInfo> modes;
DRMTopology topology;
std::string panel_name;
DRMPanelMode panel_mode;

View File

@@ -104,7 +104,7 @@ DisplayError HWTVDRM::Init() {
}
DisplayError HWTVDRM::GetNumDisplayAttributes(uint32_t *count) {
*count = connector_info_.num_modes;
*count = UINT32(connector_info_.modes.size());
if (*count <= 0) {
return kErrorHardware;
}
@@ -118,7 +118,7 @@ DisplayError HWTVDRM::GetActiveConfig(uint32_t *active_config_index) {
}
DisplayError HWTVDRM::SetDisplayAttributes(uint32_t index) {
if (index >= connector_info_.num_modes) {
if (index >= connector_info_.modes.size()) {
return kErrorNotSupported;
}
@@ -162,7 +162,7 @@ DisplayError HWTVDRM::GetConfigIndex(char *mode, uint32_t *index) {
format = UINT32(stoi(str4.substr(str4.find(':') + 1)));
}
for (size_t idex = 0; idex < connector_info_.num_modes; idex ++) {
for (size_t idex = 0; idex < connector_info_.modes.size(); idex ++) {
if ((height == connector_info_.modes[idex].vdisplay) &&
(width == connector_info_.modes[idex].hdisplay) &&
(fps == connector_info_.modes[idex].vrefresh)) {

View File

@@ -121,7 +121,7 @@ void HWVirtualDRM::InitializeConfigs() {
}
void HWVirtualDRM::DumpConfigs() {
for (uint32_t i = 0; i < (uint32_t)connector_info_.num_modes; i++) {
for (uint32_t i = 0; i < (uint32_t)connector_info_.modes.size(); i++) {
DLOGI(
"Name: %s\tvref: %d\thdisp: %d\t hsync_s: %d\thsync_e:%d\thtotal: %d\t"
"vdisp: %d\tvsync_s: %d\tvsync_e: %d\tvtotal: %d\n",