| Index: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
| diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
| index c6fc3d741df0f5d11ad26d27bbfb428768bbcb81..b0de01bac614fb27312fae1734ebaafe992d200d 100644
|
| --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
| +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
| @@ -807,10 +807,10 @@ void DesktopWindowTreeHostX11::FlashFrame(bool flash_frame) {
|
| if (urgency_hint_set_ == flash_frame)
|
| return;
|
|
|
| - XWMHints* hints = XGetWMHints(xdisplay_, xwindow_);
|
| + gfx::XScopedPtr<XWMHints> hints(XGetWMHints(xdisplay_, xwindow_));
|
| if (!hints) {
|
| // The window hasn't had its hints set yet.
|
| - hints = XAllocWMHints();
|
| + hints.reset(XAllocWMHints());
|
| }
|
|
|
| if (flash_frame)
|
| @@ -818,8 +818,7 @@ void DesktopWindowTreeHostX11::FlashFrame(bool flash_frame) {
|
| else
|
| hints->flags &= ~XUrgencyHint;
|
|
|
| - XSetWMHints(xdisplay_, xwindow_, hints);
|
| - XFree(hints);
|
| + XSetWMHints(xdisplay_, xwindow_, hints.get());
|
|
|
| urgency_hint_set_ = flash_frame;
|
| }
|
| @@ -1535,12 +1534,10 @@ void DesktopWindowTreeHostX11::SerializeImageRepresentation(
|
| Visual* DesktopWindowTreeHostX11::GetARGBVisual() {
|
| XVisualInfo visual_template;
|
| visual_template.screen = 0;
|
| - Visual* to_return = NULL;
|
|
|
| int visuals_len;
|
| - XVisualInfo* visual_list = XGetVisualInfo(xdisplay_,
|
| - VisualScreenMask,
|
| - &visual_template, &visuals_len);
|
| + gfx::XScopedPtr<XVisualInfo[]> visual_list(XGetVisualInfo(
|
| + xdisplay_, VisualScreenMask, &visual_template, &visuals_len));
|
| for (int i = 0; i < visuals_len; ++i) {
|
| // Why support only 8888 ARGB? Because it's all that GTK+ supports. In
|
| // gdkvisual-x11.cc, they look for this specific visual and use it for all
|
| @@ -1550,19 +1547,15 @@ Visual* DesktopWindowTreeHostX11::GetARGBVisual() {
|
| // don't believe that this has an alpha channel. According to marcheu@,
|
| // this should work on open source driver though. (It doesn't work with
|
| // NVidia's binaries currently.) http://crbug.com/369209
|
| - if (visual_list[i].depth == 32 &&
|
| - visual_list[i].visual->red_mask == 0xff0000 &&
|
| - visual_list[i].visual->green_mask == 0x00ff00 &&
|
| - visual_list[i].visual->blue_mask == 0x0000ff) {
|
| - to_return = visual_list[i].visual;
|
| - break;
|
| + const XVisualInfo& info = visual_list[i];
|
| + if (info.depth == 32 && info.visual->red_mask == 0xff0000 &&
|
| + info.visual->green_mask == 0x00ff00 &&
|
| + info.visual->blue_mask == 0x0000ff) {
|
| + return info.visual;
|
| }
|
| }
|
|
|
| - if (visual_list)
|
| - XFree(visual_list);
|
| -
|
| - return to_return;
|
| + return nullptr;
|
| }
|
|
|
| std::list<XID>& DesktopWindowTreeHostX11::open_windows() {
|
|
|