| Index: ui/display/chromeos/x11/native_display_delegate_x11.cc
|
| diff --git a/ui/display/chromeos/x11/native_display_delegate_x11.cc b/ui/display/chromeos/x11/native_display_delegate_x11.cc
|
| index 5394c0985687bdd7e5e243603cee00f30409b17d..902d2263a5c14fc2460dee0b467a6fd266515175 100644
|
| --- a/ui/display/chromeos/x11/native_display_delegate_x11.cc
|
| +++ b/ui/display/chromeos/x11/native_display_delegate_x11.cc
|
| @@ -400,7 +400,6 @@ bool NativeDisplayDelegateX11::GetHDCPState(const DisplaySnapshot& output,
|
| // TODO(kcwu): Use X11AtomCache to save round trip time of XInternAtom.
|
| Atom prop = XInternAtom(display_, kContentProtectionAtomName, False);
|
|
|
| - bool ok = true;
|
| // TODO(kcwu): Move this to x11_util (similar method calls in this file and
|
| // output_util.cc)
|
| success = XRRGetOutputProperty(display_,
|
| @@ -416,12 +415,15 @@ bool NativeDisplayDelegateX11::GetHDCPState(const DisplaySnapshot& output,
|
| &nitems,
|
| &bytes_after,
|
| &values);
|
| + gfx::XScopedPtr<unsigned char> scoped_values(values);
|
| if (actual_type == None) {
|
| LOG(ERROR) << "Property '" << kContentProtectionAtomName
|
| << "' does not exist";
|
| - ok = false;
|
| - } else if (success == Success && actual_type == XA_ATOM &&
|
| - actual_format == 32 && nitems == 1) {
|
| + return false;
|
| + }
|
| +
|
| + if (success == Success && actual_type == XA_ATOM && actual_format == 32 &&
|
| + nitems == 1) {
|
| Atom value = reinterpret_cast<Atom*>(values)[0];
|
| if (value == XInternAtom(display_, kProtectionUndesiredAtomName, False)) {
|
| *state = HDCP_STATE_UNDESIRED;
|
| @@ -434,17 +436,15 @@ bool NativeDisplayDelegateX11::GetHDCPState(const DisplaySnapshot& output,
|
| } else {
|
| LOG(ERROR) << "Unknown " << kContentProtectionAtomName
|
| << " value: " << value;
|
| - ok = false;
|
| + return false;
|
| }
|
| } else {
|
| LOG(ERROR) << "XRRGetOutputProperty failed";
|
| - ok = false;
|
| + return false;
|
| }
|
| - if (values)
|
| - XFree(values);
|
|
|
| - VLOG(3) << "HDCP state: " << ok << "," << *state;
|
| - return ok;
|
| + VLOG(3) << "HDCP state: success," << *state;
|
| + return true;
|
| }
|
|
|
| bool NativeDisplayDelegateX11::SetHDCPState(const DisplaySnapshot& output,
|
| @@ -537,16 +537,14 @@ void NativeDisplayDelegateX11::UpdateCrtcsForNewFramebuffer(
|
| }
|
|
|
| bool NativeDisplayDelegateX11::IsOutputAspectPreservingScaling(RROutput id) {
|
| - bool ret = false;
|
| -
|
| Atom scaling_prop = XInternAtom(display_, "scaling mode", False);
|
| Atom full_aspect_atom = XInternAtom(display_, "Full aspect", False);
|
| if (scaling_prop == None || full_aspect_atom == None)
|
| return false;
|
|
|
| int nprop = 0;
|
| - Atom* props = XRRListOutputProperties(display_, id, &nprop);
|
| - for (int j = 0; j < nprop && !ret; j++) {
|
| + gfx::XScopedPtr<Atom[]> props(XRRListOutputProperties(display_, id, &nprop));
|
| + for (int j = 0; j < nprop; j++) {
|
| Atom prop = props[j];
|
| if (scaling_prop == prop) {
|
| unsigned char* values = NULL;
|
| @@ -569,20 +567,16 @@ bool NativeDisplayDelegateX11::IsOutputAspectPreservingScaling(RROutput id) {
|
| &nitems,
|
| &bytes_after,
|
| &values);
|
| + gfx::XScopedPtr<unsigned char> scoped_value(values);
|
| if (success == Success && actual_type == XA_ATOM && actual_format == 32 &&
|
| nitems == 1) {
|
| Atom value = reinterpret_cast<Atom*>(values)[0];
|
| if (full_aspect_atom == value)
|
| - ret = true;
|
| + return true;
|
| }
|
| - if (values)
|
| - XFree(values);
|
| }
|
| }
|
| - if (props)
|
| - XFree(props);
|
| -
|
| - return ret;
|
| + return false;
|
| }
|
|
|
|
|
|
|