Save space by using bitfields in struct cookie

Hrvoje Niksic <[email protected]> Wed, 22 Jun 2005 03:44:51 +0200
Newsgroups gmane.comp.web.wget.patches
Message-ID <[email protected]>
struct cookie defines several booleans that can be converted to
bitfields, saving some space, without changing any other code.


2005-06-22  Hrvoje Niksic  <[email protected]>

	* cookies.c (struct cookie): Use 1-bit bitfields for booleans
	which makes the structure takes less space at no cost in
	complexity.

Index: src/cookies.c
===================================================================
--- src/cookies.c	(revision 1738)
+++ src/cookies.c	(working copy)
@@ -98,21 +98,21 @@
   int port;			/* port number */
   char *path;			/* path prefix of the cookie */
 
-  int secure;			/* whether cookie should be
+  unsigned discard_requested :1; /* whether cookie was created to
+				   request discarding another
+				   cookie. */
+
+  unsigned secure :1;		/* whether cookie should be
 				   transmitted over non-https
 				   connections. */
-  int domain_exact;		/* whether DOMAIN must match as a
+  unsigned domain_exact :1;	/* whether DOMAIN must match as a
 				   whole. */
 
-  int permanent;		/* whether the cookie should outlive
+  int permanent :1;		/* whether the cookie should outlive
 				   the session. */
   time_t expiry_time;		/* time when the cookie expires, 0
 				   means undetermined. */
 
-  int discard_requested;	/* whether cookie was created to
-				   request discarding another
-				   cookie. */
-
   char *attr;			/* cookie attribute name */
   char *value;			/* cookie attribute value */