[hackers] [dwm] applied Brandon MacDone's static initialization patch for seltags and Client->tags

From: Anselm R. Garbe <garbeam_AT_gmail.com>
Date: Sat Oct 06 19:49:28 2007

changeset: 1026:bc0929d03388
tag: tip
user: Anselm R. Garbe <garbeam_AT_gmail.com>
date: Sat Oct 06 19:43:15 2007 +0200
summary: applied Brandon MacDone's static initialization patch for seltags and Client->tags

diff -r 107746bd83f0 -r bc0929d03388 dwm.c
--- a/dwm.c Fri Oct 05 18:30:01 2007 +0200
+++ b/dwm.c Sat Oct 06 19:43:15 2007 +0200
@@ -57,21 +57,6 @@ enum { WMProtocols, WMDelete, WMName, WM
 
 /* typedefs */
 typedef struct Client Client;
-struct Client {
- char name[256];
- int x, y, w, h;
- int rx, ry, rw, rh; /* revert geometry */
- int basew, baseh, incw, inch, maxw, maxh, minw, minh;
- int minax, maxax, minay, maxay;
- long flags;
- unsigned int border, oldborder;
- Bool isbanned, isfixed, ismax, isfloating, wasfloating;
- Bool *tags;
- Client *next;
- Client *prev;
- Client *snext;
- Window win;
-};
 
 typedef struct {
         int x, y, w, h;
@@ -195,7 +180,7 @@ double mwfact;
 double mwfact;
 int screen, sx, sy, sw, sh, wax, way, waw, wah;
 int (*xerrorxlib)(Display *, XErrorEvent *);
-unsigned int bh, bpos, ntags;
+unsigned int bh, bpos;
 unsigned int blw = 0;
 unsigned int ltidx = 0; /* default */
 unsigned int nlayouts = 0;
@@ -218,7 +203,6 @@ Atom wmatom[WMLast], netatom[NetLast];
 Atom wmatom[WMLast], netatom[NetLast];
 Bool otherwm, readin;
 Bool running = True;
-Bool *seltags;
 Bool selscreen = True;
 Client *clients = NULL;
 Client *sel = NULL;
@@ -231,6 +215,26 @@ Regs *regs = NULL;
 
 /* configuration, allows nested code to access above variables */
 #include "config.h"
+
+/* Statically define the number of tags. */
+unsigned int ntags = sizeof tags / sizeof tags[0];
+Bool seltags[sizeof tags / sizeof tags[0]] = {[0] = True};
+
+struct Client {
+ char name[256];
+ int x, y, w, h;
+ int rx, ry, rw, rh; /* revert geometry */
+ int basew, baseh, incw, inch, maxw, maxh, minw, minh;
+ int minax, maxax, minay, maxay;
+ long flags;
+ unsigned int border, oldborder;
+ Bool isbanned, isfixed, ismax, isfloating, wasfloating;
+ Bool tags[sizeof tags / sizeof tags[0]];
+ Client *next;
+ Client *prev;
+ Client *snext;
+ Window win;
+};
 
 /* functions*/
 void
@@ -393,7 +397,6 @@ cleanup(void) {
         XFreeCursor(dpy, cursor[CurMove]);
         XSetInputFocus(dpy, PointerRoot, RevertToPointerRoot, CurrentTime);
         XSync(dpy, False);
- free(seltags);
 }
 
 void
@@ -1006,7 +1009,6 @@ manage(Window w, XWindowAttributes *wa)
         XWindowChanges wc;
 
         c = emallocz(sizeof(Client));
- c->tags = emallocz(ntags * sizeof(Bool));
         c->win = w;
         c->x = wa->x;
         c->y = wa->y;
@@ -1467,9 +1469,6 @@ setup(void) {
 
         /* init tags */
         compileregs();
- ntags = sizeof tags / sizeof tags[0];
- seltags = emallocz(sizeof(Bool) * ntags);
- seltags[0] = True;
 
         /* init appearance */
         dc.norm[ColBorder] = getcolor(NORMBORDERCOLOR);
@@ -1703,7 +1702,6 @@ unmanage(Client *c) {
                 focus(NULL);
         XUngrabButton(dpy, AnyButton, AnyModifier, c->win);
         setclientstate(c, WithdrawnState);
- free(c->tags);
         free(c);
         XSync(dpy, False);
         XSetErrorHandler(xerror);
Received on Sat Oct 06 2007 - 19:49:28 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:58:29 UTC