[606] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[D-O-H] r711 - trunk/owl

daemon@ATHENA.MIT.EDU (asedeno@MIT.EDU)
Thu Oct 29 18:07:53 2009

Resent-From: nelhage@mit.edu
Resent-To: barnowl-dev-mtg@charon.mit.edu
To: dirty-owl-hackers@mit.edu
From: asedeno@MIT.EDU
Reply-to: dirty-owl-hackers@MIT.EDU
Date: Wed, 16 May 2007 22:21:31 -0400 (EDT)

Author: asedeno
Date: 2007-05-16 22:21:30 -0400 (Wed, 16 May 2007)
New Revision: 711

Modified:
   trunk/owl/fmtext.c
Log:
Do not initialize the colorpair manager array if we don't have
colors. More specifically, do not write into arrays we have not
allocated and segfault.



Modified: trunk/owl/fmtext.c
===================================================================
--- trunk/owl/fmtext.c	2007-05-16 23:21:56 UTC (rev 710)
+++ trunk/owl/fmtext.c	2007-05-17 02:21:30 UTC (rev 711)
@@ -700,31 +700,37 @@
       cpmgr->pairs[i][j] = -1;
     }
   }
-  for(i = 0; i < 8; i++) {
-    short fg, bg;
-    pair_content(i, &fg, &bg);
-    cpmgr->pairs[fg+1][bg+1] = i;
+  if (owl_global_get_hascolors(&g)) {
+    for(i = 0; i < 8; i++) {
+      short fg, bg;
+      if (i >= COLORS) continue;
+      pair_content(i, &fg, &bg);
+      cpmgr->pairs[fg+1][bg+1] = i;
+    }
   }
 }
 
 /* Reset used list */
 void owl_fmtext_reset_colorpairs()
 {
-  short i, j;
-  owl_colorpair_mgr *cpmgr = owl_global_get_colorpair_mgr(&g);
-  cpmgr->next = 8;
-
-  // The test is <= because we allocated COLORS+1 entries.
-  for(i = 0; i <= COLORS; i++) {
-    for(j = 0; j <= COLORS; j++) {
-      cpmgr->pairs[i][j] = -1;
+  if (owl_global_get_hascolors(&g)) {
+    short i, j;
+    owl_colorpair_mgr *cpmgr = owl_global_get_colorpair_mgr(&g);
+    cpmgr->next = 8;
+    
+    // The test is <= because we allocated COLORS+1 entries.
+    for(i = 0; i <= COLORS; i++) {
+      for(j = 0; j <= COLORS; j++) {
+	cpmgr->pairs[i][j] = -1;
+      }
     }
+    for(i = 0; i < 8; i++) {
+      short fg, bg;
+      if (i >= COLORS) continue;
+      pair_content(i, &fg, &bg);
+      cpmgr->pairs[fg+1][bg+1] = i;
+    }
   }
-  for(i = 0; i < 8; i++) {
-    short fg, bg;
-    pair_content(i, &fg, &bg);
-    cpmgr->pairs[fg+1][bg+1] = i;
-  }
 }
 
 /* Assign pairs by request */


home help back first fref pref prev next nref lref last post