xserver/hw/xfree86
Roland Scheidegger 67a8c659f2 hw/xfree86: move reference counting out of the UseHWCursor[ARGB] functions
The problem is that the xf86_use_hw_cursor(_argb) functions may get this
correctly now, some drivers will replace these generic versions with their
own functions. It is pretty insane to expect them to do reference counting
of the cursor (as an example, look at driver/xf86-video-vmware to see how
that looks like as a workaround). There are even places in xserver itself
which replace these two functions.
The segfaults if no reference counting is done are caused because the
reference count of the cursor reached zero, hence the cursor was freed,
however xf86CursorEnableDisableFBAccess() brought it back to life from
the dead (from the SavedCursor).
This patch hence adds reference counting in xf86CursorSetCursor. As per Michel
Daenzer's suggestion, also free the cursor upon xf86CursorCloseScreen.
In theory with this it should be possible to remove the reference
counting in the UseHwCursor functions I think, though it should also be
safe to keep them.

Signed-off-by: Roland Scheidegger <sroland@vmware.com>
Reviewed-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-03-15 08:37:53 -07:00
..
common xfree86: fix xf86Config.c build error in --enable-debug mode. (#26971) 2010-03-11 08:48:49 +10:00
ddc EDID: CEA extension support 2009-10-29 14:04:55 -04:00
dixmods Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
doc xfree86: Reorder InputClass option priorities 2010-02-15 15:27:42 +10:00
dri Add type name argument to CreateNewResourceType 2009-12-18 17:44:12 -08:00
dri2 DRI2: initialize event->drawable in DRI2SwapEvent 2010-02-25 11:43:37 -08:00
exa EXA: Allow optimized migration to be enabled with mixed pixmaps. 2009-12-28 22:01:42 -08:00
fbdevhw .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
i2c Don't cast double to int: use default conversions or explicitly round. 2009-10-28 18:56:42 -07:00
int10 Fix builds with --with-int10=stub 2009-12-15 10:23:16 -08:00
loader .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
modes hw/xfree86: fix refcounting in xf86_use_hw_cursor 2010-03-15 08:36:33 -07:00
os-support Solaris xf86OSRingBell() off-by-one error in filling iov[] array 2010-02-17 23:15:34 -08:00
parser parser: corrected xf86getBoolValue to use case insensitive compare 2010-02-17 23:16:25 -08:00
ramdac hw/xfree86: move reference counting out of the UseHWCursor[ARGB] functions 2010-03-15 08:37:53 -07:00
shadowfb s/MIN/min/, s/MAX/max/ (#2968) 2009-06-03 13:45:42 -04:00
utils Update Sun license notices to current X.Org standard form 2009-12-16 17:11:35 -08:00
vbe Update to xextproto 7.0.99.1. 2009-07-15 17:00:05 +10:00
vgahw Revert "alpha: kill xf86SlowBCopyToBus and xf86SlowBCopyFromBus" 2009-10-06 20:40:20 -04:00
x86emu Replace assembly with generic unaligned access code 2010-03-03 20:02:49 -08:00
xaa .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
xf8_16bpp Update several of my and/or Red Hat's licenses to standard form. 2009-05-14 07:02:44 -04:00
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
Makefile.am Use $(MAKE) instead of "make" to build Solaris inline assembly 2009-11-05 13:31:16 -08:00
xorgconf.cpp Update xorg.conf man page & sample for changes in Xorg 1.7 2009-09-14 16:03:18 +10:00