On Tue, Sep 20, 2011 at 03:54:23PM -0700, Jason Gerecke wrote: > We now call XRRFreeScreenResources as soon as practical to allow the > now-following logic to return at its leisure. Additionally, we also > copy the data from 'crtc_info' locally and free it ASAP. > > Signed-off-by: Jason Gerecke <killert...@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> Cheers, Peter > --- > Changes from v3: > > * Corresponds to patch v3 1/7 > * No changes. > > tools/xsetwacom.c | 16 ++++++++++------ > 1 files changed, 10 insertions(+), 6 deletions(-) > > diff --git a/tools/xsetwacom.c b/tools/xsetwacom.c > index a0056a7..7c5a744 100644 > --- a/tools/xsetwacom.c > +++ b/tools/xsetwacom.c > @@ -2005,6 +2005,7 @@ static void _set_matrix(Display *dpy, XDevice *dev, > static void set_output_xrandr(Display *dpy, XDevice *dev, param_t *param, > int argc, char **argv) > { > int i, found = 0; > + int x, y, width, height; > char *output_name; > XRRScreenResources *res; > XRROutputInfo *output_info; > @@ -2013,7 +2014,6 @@ static void set_output_xrandr(Display *dpy, XDevice > *dev, param_t *param, int ar > output_name = argv[0]; > > res = XRRGetScreenResources(dpy, DefaultRootWindow(dpy)); > - > for (i = 0; i < res->noutput && !found; i++) > { > output_info = XRRGetOutputInfo(dpy, res, res->outputs[i]); > @@ -2025,8 +2025,13 @@ static void set_output_xrandr(Display *dpy, XDevice > *dev, param_t *param, int ar > continue; > > crtc_info = XRRGetCrtcInfo (dpy, res, output_info->crtc); > - TRACE("CRTC (%dx%d) %dx%d\n", crtc_info->x, crtc_info->y, > - crtc_info->width, crtc_info->height); > + x = crtc_info->x; > + y = crtc_info->y; > + width = crtc_info->width; > + height = crtc_info->height; > + XRRFreeCrtcInfo(crtc_info); > + > + TRACE("CRTC (%dx%d) %dx%d\n", x, y, width, height); > > if (strcmp(output_info->name, output_name) == 0) > { > @@ -2034,18 +2039,17 @@ static void set_output_xrandr(Display *dpy, XDevice > *dev, param_t *param, int ar > break; > } > } > + XRRFreeScreenResources(res); > > /* crtc holds our screen info, need to compare to actual screen size */ > if (found) > { > TRACE("Setting CRTC %s\n", output_name); > - _set_matrix(dpy, dev, crtc_info->x, crtc_info->y, > - crtc_info->width, crtc_info->height); > + _set_matrix(dpy, dev, x, y, width, height); > } else > printf("Unable to find output '%s'. " > "Output may not be connected.\n", output_name); > > - XRRFreeScreenResources(res); > } > > /** > -- > 1.7.6 ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Linuxwacom-devel mailing list Linuxwacom-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel