summaryrefslogtreecommitdiffstats
path: root/hacks/blitspin.c
diff options
context:
space:
mode:
authorSimon Rettberg2019-02-18 11:55:41 +0100
committerSimon Rettberg2019-02-18 11:55:41 +0100
commitae69a754244c4e475c8d2591772ca8e005071d83 (patch)
tree58b3fa7abc2dcfe3c23e1c0ce108950c720826ab /hacks/blitspin.c
parentUpdate gitignore (diff)
downloadxscreensaver-ae69a754244c4e475c8d2591772ca8e005071d83.tar.gz
xscreensaver-ae69a754244c4e475c8d2591772ca8e005071d83.tar.xz
xscreensaver-ae69a754244c4e475c8d2591772ca8e005071d83.zip
Update to 5.42
Diffstat (limited to 'hacks/blitspin.c')
-rw-r--r--hacks/blitspin.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/hacks/blitspin.c b/hacks/blitspin.c
index d27271d..00d9109 100644
--- a/hacks/blitspin.c
+++ b/hacks/blitspin.c
@@ -256,11 +256,13 @@ blitspin_init (Display *d_arg, Window w_arg)
bitmap_name = get_string_resource (st->dpy, "bitmap", "Bitmap");
if (! bitmap_name || !*bitmap_name)
- bitmap_name = "(default)";
+ bitmap_name = strdup ("(default)");
if (!strcasecmp (bitmap_name, "(default)") ||
- !strcasecmp (bitmap_name, "default"))
- bitmap_name = "(screen)";
+ !strcasecmp (bitmap_name, "default")) {
+ free (bitmap_name);
+ bitmap_name = strdup ("(screen)");
+ }
if (!strcasecmp (bitmap_name, "(builtin)") ||
!strcasecmp (bitmap_name, "builtin"))
@@ -309,6 +311,7 @@ blitspin_init (Display *d_arg, Window w_arg)
blitspin_init_2 (st);
}
+ if (bitmap_name) free (bitmap_name);
return st;
}
@@ -421,6 +424,18 @@ blitspin_event (Display *dpy, Window window, void *closure, XEvent *event)
static void
blitspin_free (Display *dpy, Window window, void *closure)
{
+ struct state *st = (struct state *) closure;
+# ifdef USE_XCOPYAREA
+ if (st->gc_set) XFreeGC (dpy, st->gc_set);
+ if (st->gc_clear) XFreeGC (dpy, st->gc_clear);
+ if (st->gc_copy) XFreeGC (dpy, st->gc_copy);
+ if (st->gc_and) XFreeGC (dpy, st->gc_and);
+ if (st->gc_or) XFreeGC (dpy, st->gc_or);
+ if (st->gc_xor) XFreeGC (dpy, st->gc_xor);
+# endif
+ if (st->gc) XFreeGC (dpy, st->gc);
+ XFreePixmap (dpy, st->bitmap);
+ free (st);
}