Commit 943666d6 authored by Andrew Xu's avatar Andrew Xu Committed by Commit Bot

Fix alloc-dealloc-mismatch

drmModeConnectorPtr and drmModeCrtc are destructed by "free".
So their memory should be allocated by "malloc" instead of
"new".

Bug: 937638
Change-Id: I34737a692963735a8e88c8e1a0012ad6b09666fc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1501996
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: default avatarDaniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#638405}
parent 877606c9
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include "ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h" #include "ui/ozone/platform/drm/gpu/drm_gpu_display_manager.h"
#include <xf86drm.h>
#include <string> #include <string>
#include <unordered_map> #include <unordered_map>
#include <utility> #include <utility>
...@@ -76,7 +77,9 @@ DrmGpuDisplayManagerTestHelper::GetAvailableDisplayControllerInfos( ...@@ -76,7 +77,9 @@ DrmGpuDisplayManagerTestHelper::GetAvailableDisplayControllerInfos(
// reallocation. It can help to test the code block of crtc reallocation. // reallocation. It can help to test the code block of crtc reallocation.
for (auto connector_iter = connector_resources_.rbegin(); for (auto connector_iter = connector_resources_.rbegin();
connector_iter != connector_resources_.rend(); connector_iter++) { connector_iter != connector_resources_.rend(); connector_iter++) {
drmModeConnectorPtr connector = new drmModeConnector; drmModeConnectorPtr connector = nullptr;
connector = static_cast<drmModeConnectorPtr>(drmMalloc(sizeof(*connector)));
DCHECK(connector);
connector->connector_id = *connector_iter; connector->connector_id = *connector_iter;
connector->encoders = nullptr; connector->encoders = nullptr;
connector->prop_values = nullptr; connector->prop_values = nullptr;
...@@ -85,7 +88,8 @@ DrmGpuDisplayManagerTestHelper::GetAvailableDisplayControllerInfos( ...@@ -85,7 +88,8 @@ DrmGpuDisplayManagerTestHelper::GetAvailableDisplayControllerInfos(
drmModeCrtcPtr crtc = nullptr; drmModeCrtcPtr crtc = nullptr;
if (crtc_iter != crtc_resources_.rend()) { if (crtc_iter != crtc_resources_.rend()) {
crtc = new drmModeCrtc; crtc = static_cast<drmModeCrtcPtr>(drmMalloc(sizeof(*crtc)));
DCHECK(crtc);
crtc->crtc_id = *crtc_iter; crtc->crtc_id = *crtc_iter;
intermediate_mappings_[connector->connector_id] = crtc->crtc_id; intermediate_mappings_[connector->connector_id] = crtc->crtc_id;
crtc_iter++; crtc_iter++;
...@@ -213,13 +217,7 @@ void DrmGpuDisplayManagerTest::SetUp() { ...@@ -213,13 +217,7 @@ void DrmGpuDisplayManagerTest::SetUp() {
screen_manager_.get(), device_manager_.get())); screen_manager_.get(), device_manager_.get()));
} }
// Crashes on ChromeOS ASan LSan. https://crbug.com/937638. TEST_F(DrmGpuDisplayManagerTest, GetDisplays) {
#if defined(OS_CHROMEOS)
#define MAYBE_GetDisplays DISABLED_GetDisplays
#else
#define MAYBE_GetDisplays GetDisplays
#endif
TEST_F(DrmGpuDisplayManagerTest, MAYBE_GetDisplays) {
const uint32_t display_id1 = 1, display_id2 = 2, display_id3 = 3; const uint32_t display_id1 = 1, display_id2 = 2, display_id3 = 3;
// Connect two displays with device then update |hardware_infos_|. // Connect two displays with device then update |hardware_infos_|.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment