summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-05-13Replace X-allocation functions with their C89 counterpartsMikhail Gusarov345-3011/+3011
The only remaining X-functions used in server are XNF*, the rest is converted to plain alloc/calloc/realloc/free/strdup. X* functions are still exported from server and x* macros are still defined in header file, so both ABI and API are not affected by this change. Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-13Deprecate allocation functions which are plain wrappers for C stdlibMikhail Gusarov1-4/+5
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-13Document allocation functions, noting deviations from C libraryMikhail Gusarov1-0/+36
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-13Clean {X,XNF}{alloc,calloc,realloc,free,strdup} from pre-C89 baggageMikhail Gusarov2-71/+51
C89 guarantees alignment of pointers returned from malloc/calloc/realloc, so stop fiddling with alignment manually and just pass the arguments to library functions. Also convert silent error when negative size is passed into function into warning in log file. Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-12dri2: Copy front to fake front in swapbufferKristian Høgsberg1-0/+10
If we don't have a fake front, nothing will happen. The fix was extracted from a bigger patch from Francisco Jerez. https://bugs.freedesktop.org/show_bug.cgi?id=27305 Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Pauli Nieminen <suokkos@gmail.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-11XQuartz GL: Fix __glXAquaScreenCreateDrawable prototypeJeremy Huddleston1-4/+6
Fixes regression introduced in 9de0e31746d5f0d9d39d11c94ec3cbc04a9935fc Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-11Remember drawable ID used to find damage target for use in events. Bug 5730.Keith Packard2-1/+3
Using Composite, window pixmaps are given names in the client resource namespace and yet may not have any XID recorded in the drawable structure. As such, we need to remember the XID used to lookup the pixmap in the resource database so that we can report the correct XID back to the client in damage events. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-05-11Merge remote branch 'krh/dri2-resource-fixes'Keith Packard10-48/+182
2010-05-11Fix null pointer dereference in xf86_reload_cursors().Cyril Brulebois1-1/+1
Upon resume, X may try to dereference a null pointer, which has been reported in Debian bug #507916 (http://bugs.debian.org/507916). Jim Paris came up with a patch which solves the problem for him. Here's a (hopefully) fixed version of his patch (without the typo). Cc: Jim Paris <jim@jtan.com> Signed-off-by: Cyril Brulebois <kibi@debian.org> Reviewed-By: Matthias Hopf <mhopf@suse.de> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-11dri2: Take an XID for tracking the DRI2 drawableKristian Høgsberg8-44/+164
Some pixmaps (window pixmaps and scratch pixmaps) don't have the drawable->id set and thus DRI2 gets confused when using that field for looking up the DRI2 drawable. Go back to using privates for getting at the DRI2 drawable from a DrawablePtr. We need to keep the resource tracking in place so we can remove the DRI2 drawable when the X resource it was created for goes away. Additionally, we also now track the DRI2 drawable using a client XID so we can reclaim the DRI2 drawable even if the client goes before the drawable and doesn't destroy the DRI2 drawable. Tested-by: Owen W. Taylor <otaylor@fishsoup.net> Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
2010-05-11list.h: Add list_for_each_entry_safe()Kristian Høgsberg1-0/+6
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-05-11glxdri2: Hard-code the extension version we needKristian Høgsberg1-3/+3
If we use the #define'd version from dri_interface.h, the server will require at least that version of the extension. If we're compiling against a dri_interface.h with a newer version we don't really require, glxdri2 will require a too high version of the extension. The right approach is to just hard-code the version we need instead of using the #defines. Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-05-11dix: Update element count in FreeResource*()Kristian Høgsberg1-1/+9
FreeResource() keeps clientTable[cid].elements up to date with the number of resources allocated to the client. The other free resource functions (FreeResourceByType(), FreeClientNeverRetainResources() and FreeClientResources()) don't maintain this invariant. Typically, the only consequence is that the element count is too high and we end up allocating the hash table bigger than necessary. However, FreeResource() also relies on the element count to restart the search if the list of resources has been changed during a resource destruction callback. Since FreeResourceByType() doesn't update the count, if we call that from a resource destruction callback from FreeResource(), the loop isn't restarted and we end up following an invalid next pointer. Furthermore, LookupClientResourceComplex() and FreeClientNeverRetainResources() don't use the element count to detect if a callback deleted a resource and may end up following an invalid next pointer if the resource system is called into recursively. Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-11xfree86: dga needs to use the master keyboard state (#27573)Peter Hutterer1-1/+3
GetPairedDevice() may not always return the keyboard, resulting in a null-pointer dereference when accessing the XKB state. For floating devices, the GetMaster() returns the device itself. X.Org Bug 27573 <http://bugs.freedesktop.org/show_bug.cgi?id=27573> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Tested-by: Ben Hutchings <ben@decadent.org.uk>
2010-05-10Fix wrong bracket values when startOver = FALSE.David James1-11/+8
Currently, SyncComputeBracketValues reuses old values of bracket_greater and bracket_less when startOver = FALSE. This can result in incorrect bracket values. To fix this issue, the startOver parameter is removed, and we do not reuse old values of bracket_greater and bracket_less. X.Org Bug 27023 <http://bugs.freedesktop.org/show_bug.cgi?id=27023> Signed-off-by: David James <davidjames@google.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-10Merge remote branch 'jamey/for-keith'Keith Packard4-146/+120
2010-05-10Simplify error-handling in dixChangeGC.Jamey Sharp1-71/+46
Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-10miPolyPoint bugfix: Check memory allocation before changing the GC.Jamey Sharp1-2/+3
miPolyPoint ought to leave the GC unchanged even if it fails. ajax says: > We have a new winner for the oldest-bug competition! It's actually > been like that since X11R1: > > -rw-r--r--. 1 ajax ajax 2817 1987-09-12 01:20 ddx/mi/mipolypnt.c Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-05-10Move AppendSpanGroup from miwideline.h to miwideline.c.Jamey Sharp2-27/+30
Also make it stop being a macro. Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-10Expand macros that are used only in miFillPolyHelper.Jamey Sharp2-46/+41
Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Keith Packard <keithp@keithp.com>
2010-05-08dmxBERestoreRenderGlyph was passing wrong value to freeKeith Packard1-1/+1
Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
2010-05-07mi: Delete wide ellipse arc cacheAdam Jackson1-107/+11
This does make wide ellipses slower, by a factor of twoish: 946000.0 521000.0 ( 0.55) 10-pixel wide ellipse 98300.0 49900.0 ( 0.51) 100-pixel wide ellipse 17700.0 9310.0 ( 0.53) 500-pixel wide ellipse 16900.0 7980.0 ( 0.47) 100-pixel wide dashed ellipse 16100.0 5370.0 ( 0.33) 100-pixel wide double-dashed ellipse But no one cares, and it's a modest size win: text data bss dec hex filename 1773824 69552 59288 1902664 1d0848 hw/vfb/Xvfb.before 1773112 69552 58648 1901312 1d0300 hw/vfb/Xvfb Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-07Return BadPicture, not BadPixmap, if alpha-map is invalid.Jamey Sharp1-1/+1
I believe this is what was intended. Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-07VERIFY_PICTURE always returns BadPicture. Don't bother specifying.Jamey Sharp4-98/+53
Same goes for VERIFY_ALPHA, VERIFY_XIN_PICTURE, and VERIFY_XIN_ALPHA. Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-07Introduce dixLookupFontable for "FONT or GC" parameters.Jamey Sharp5-48/+33
Signed-off-by: Jamey Sharp <jamey@minilop.net> Reviewed-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-07Constify function prototypes in auth & xdmcp codeAlan Coopersmith8-66/+68
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Tested-by: Gaetan Nadon <memsize@videotron.ca> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-07Fix mod() definition.Matthias Hopf1-1/+1
Presumably no implications, especially security-wise. Signed-off-by: Matthias Hopf <mhopf@suse.de> Reviewed-by: Matt Turner <mattst88@gmail.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-07Export XkbCopyDeviceKeymap from Xorg, it is needed by VNC.Adam Tkac1-1/+1
Signed-off-by: Adam Tkac <atkac@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-07dix: make DeviceEvent coordinates signed for Xinerama. #24986Chris Humbert1-2/+2
With Xinerama enabled, event coordinates are relative to Screen 0, so they can be negative. The new DeviceEvent's coordinates are of type uint16_t, making screens above and to the left of Screen 0 unusable. X.Org Bug 24986 <https://bugs.freedesktop.org/show_bug.cgi?id=24986> Signed-off-by: Chris Humbert <freedesktop@mahadri.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-07Xi: reset the known properties at the end of the server generation.Peter Hutterer3-0/+13
Properties allocated through XIGetKnownProperty() aren't reset on the second server generation but keep the old value. As a result, wrong Atoms are supplied to the driver, resulting in potential data corruption or weird error message. Reproducible by running "xlsatom | grep FLOAT" twice on a plain X server. The second X server generation won't have the FLOAT atom defined anymore, despite the users of this atom not noticing any errors. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-04XQuartz: add new localization files to EXTRA_DISTJulien Cristau1-0/+4
commit 206531f75cd41c034e89fdfbc75ab0910682eef8 added localization files for ar, add them to the Makefile. Signed-off-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-05-03Make sure XFixes invisible cursor gets freed on server resetKeith Packard1-11/+12
This uses the same hack that dix uses for the rootCursor -- allocate a resource ID for the invisible cursor so that it gets freed at reset time. This also allows us to unconditionally create it during extension initialization; necessary as the privates layout may well be different on subsequent generations. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-03Fix cursor ref counting mistakes with sprites and xf86Cursor.cKeith Packard3-5/+19
A few cursor value assignments weren't getting correctly ref counted, causing leaks of cursor objects. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-05-02Merge remote branch 'jeremyhu/master'Keith Packard5-5/+8
2010-05-02XQuartz GLX: Change around includes for better compatability with different ↵Jeremy Huddleston2-1/+4
OS versions Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-05-02rootless: Add some sanity checking to miPaintWindowJeremy Huddleston1-0/+3
This avoids painting the root window when it isn't actually drawable. Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-05-02rootless: Remove an unneeded commentJeremy Huddleston1-4/+0
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-05-02x-list.c: null-returning function malloc() was called without checkingOliver McFadden1-0/+1
Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
2010-05-02dix: wrap variables with #ifdef when panoramix is not usedTiago Vignatti2-3/+2
this shut up some warnings. Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Reviewed-by: Jamey Sharp <jamey@minilop.net> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-30Delete loop with no effect from GlyphUninitKeith Packard1-9/+0
Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Jamey Sharp <jamey@minilop.net>
2010-04-30Replace some input devPrivates with regular struct fieldsKeith Packard6-92/+47
In the process, fixes a memory leak in CloseDevice, and an unchecked memory allocation in InitializePredictableAccelerationProperties. Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Jamey Sharp <jamey@minilop.net>
2010-04-30Move callback definitions to their own fileKeith Packard3-30/+89
Needed as the privates stuff uses the callbacks before they would have been defined in dix.h Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Jamey Sharp <jamey@minilop.net>
2010-04-30Move X_DEPRECATED to misc.h so it can be used outside resource.hKeith Packard2-6/+6
Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Jamey Sharp <jamey@minilop.net>
2010-04-30dix: Improve documentation of the DIX private data functions.Aaron Plattner1-7/+57
The functions exported by the devPrivates code were poorly documented. I tried to spruce it up a little. Signed-off-by: Aaron Plattner <aplattner@nvidia.com> Reviewed-by: Tiago Vignatti <tiago.vignatti@nokia.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-30Merge remote branch 'jamey/for-keith'Keith Packard3-153/+104
Conflicts: hw/xfree86/common/xf86xv.c
2010-04-30Merge remote branch 'whot/for-keith'Keith Packard4-12/+53
2010-04-30Merge remote branch 'yselkowitz/master'Keith Packard7-3591/+42
2010-04-30Merge remote branch 'vignatti/for-keith'Keith Packard23-638/+312
2010-04-30xfree86: a missing input driver is not an error.Peter Hutterer1-1/+1
We call NIDR on all devices that make it through the config backend. Including some that have no driver assigned to them (/dev/input/mouse0 for example). Those ones then simply get ignored by NIDR, but this should not be noted as an error in the log file. X_INFO is sufficient, and it may just prevent some bugreports. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-04-28Cygwin/X: AIGLX using native WGLJon TURNEY17-1945/+2780
A rewrite of the XWin DDX AIGLX code to actually make it do something useful again Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Colin Harrison <colin.harrison@virgin.net>