[PATCH xserver] randr: Compare all the bytes in RRPostPendingProperties
Aaron Plattner
aplattner at nvidia.com
Fri Jul 29 16:12:06 PDT 2011
RRPostPendingProperties tries to compare the pending and current
property values to decide whether they're actually changing. However,
it does this using a memcmp that passes in pending_value->size as the
number of bytes. This is actually the number of elements, where each
element is (pending_value->format / 8) bytes long. This causes the
pending value to not be propagated if the first pending_value->size
bytes are the same and only the end of it is changing.
Fix this by computing the total number of bytes to compare in the
memcmp.
Signed-off-by: Aaron Plattner <aplattner at nvidia.com>
---
randr/rrproperty.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/randr/rrproperty.c b/randr/rrproperty.c
index ba04c16..61e7bb4 100644
--- a/randr/rrproperty.c
+++ b/randr/rrproperty.c
@@ -283,7 +283,7 @@ RRPostPendingProperties (RROutputPtr output)
pending_value->format == current_value->format &&
pending_value->size == current_value->size &&
!memcmp (pending_value->data, current_value->data,
- pending_value->size))
+ pending_value->size * (pending_value->format / 8)))
continue;
if (RRChangeOutputProperty (output, property->propertyName,
--
1.7.4.1
More information about the xorg-devel
mailing list