xserver: Branch 'master' - 4 commits
Keith Packard
keithp at kemper.freedesktop.org
Mon Aug 6 15:13:56 PDT 2012
Xi/exevents.c | 6 ++++++
Xi/xiproperty.c | 2 ++
test/Makefile.am | 2 --
3 files changed, 8 insertions(+), 2 deletions(-)
New commits:
commit 94b514d5e4b376d05e106eb3853da511256e8545
Merge: 7d87545... 7328900...
Author: Keith Packard <keithp at keithp.com>
Date: Mon Aug 6 15:13:17 2012 -0700
Merge remote-tracking branch 'whot/for-keith'
commit 7328900042b9c1312aed48753fd6054e64613e4c
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date: Mon Jul 30 23:37:06 2012 -0700
XIChangeDeviceProperty: free newly allocated prop when SetProperty fails
Reported by parfait 1.0:
Error: Memory leak (CWE 401)
Memory leak of pointer 'prop' allocated with XICreateDeviceProperty(property)
at line 774 of Xi/xiproperty.c in function 'XIChangeDeviceProperty'.
'prop' allocated at line 700 with XICreateDeviceProperty(property).
prop leaks when handler != NULL at line 768
and handler->SetProperty != NULL at line 769
and checkonly != 0 at line 772
and rc != 0 at line 772.
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index ca73104..4beedcf 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -771,6 +771,8 @@ XIChangeDeviceProperty(DeviceIntPtr dev, Atom property, Atom type,
&new_value, checkonly);
if (checkonly && rc != Success) {
free(new_value.data);
+ if (add)
+ XIDestroyDeviceProperty(prop);
return rc;
}
}
commit 4dbbcdf64563cb95f83c04b2442cb7e868384264
Author: Daniel d'Andrada <daniel.dandrada at canonical.com>
Date: Thu Jul 26 17:31:57 2012 -0300
Do sent TouchEnd to listeners that don't own an accepted touch
When the owner of a touch accepts it, the other listeners must
receive a TouchEnd.
Even though there's code implementing the logic above in
ProcessTouchOwnershipEvent(), DeliverTouchEndEvent() was refusing to send
those TouchEnd events in this situatuation.
Signed-off-by: Daniel d'Andrada <daniel.dandrada at canonical.com>
Reviewed-by: Chase Douglas <chase.douglas at canonical.com>
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
diff --git a/Xi/exevents.c b/Xi/exevents.c
index 9f6ec84..494d07e 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -1888,6 +1888,12 @@ DeliverTouchEndEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, InternalEvent *ev,
if (normal_end)
listener->state = LISTENER_HAS_END;
}
+ else if (ev->device_event.flags & TOUCH_ACCEPT) {
+ /* Touch has been accepted by its owner, which is not this listener */
+ if (listener->state != LISTENER_HAS_END)
+ rc = DeliverOneTouchEvent(client, dev, ti, grab, win, ev);
+ listener->state = LISTENER_HAS_END;
+ }
out:
return rc;
commit 02d91ccb0955252153206061a44340f051077624
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Thu Jun 21 15:42:17 2012 +1000
test: always add DIX_LIB and OS_LIB on XORG builds
With --disable-xorg, We also disabled a bunch of tests because of their
perceived reliance on a DDX. The cause was libtool missing some object files
that never ended up in libxservertest.la. Only the xfree86 test has a true
dependency on XORG.
DIX_LIB was pointing to dix.O (instead of libdix.la) when
DTRACE_SPECIAL_OBJECTS was defined. libdix.la should be part of XSERVER_LIBS
but dix.O is not a recognised libtool object, so it got skipped for
libxservertest.a. Only in the XORG case would we add DIX_LIB and OS_LIB
manually, thus forcing linkage with the dtrace-generated objects.
Fixing this by packaging up the dtrace-generated files as part of
libdix.la/libos.la doesn't work for Solaris (and possible others), so simply
always force linkage against the DIX_LIB/OS_LIB in the case of dtrace objects.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Tested-by: Alan Coopersmith <alan.coopersmith at oracle.com>
diff --git a/test/Makefile.am b/test/Makefile.am
index aa018c9..34f53fc 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -23,11 +23,9 @@ INCLUDES += -I$(top_srcdir)/hw/xfree86/parser \
endif
TEST_LDADD=libxservertest.la $(XORG_SYS_LIBS) $(XSERVER_SYS_LIBS) $(GLX_SYS_LIBS)
-if XORG
if SPECIAL_DTRACE_OBJECTS
TEST_LDADD += $(OS_LIB) $(DIX_LIB)
endif
-endif
xkb_LDADD=$(TEST_LDADD)
input_LDADD=$(TEST_LDADD)
More information about the xorg-commit
mailing list