On Jul 23, 2009, at 3:46 PM, Adrian Robert wrote: > > If you could please retest this against the latest branch or trunk, > I've checked in some robustness improvement to the indexed color > stuff that may clear this up. Further to that, I don't think your change is as safe as it could be. Below is what I did in Aquamacs:master: I'm returning an actual color in case the index is invalid, rather than nil. Is ns_lookup_indexed_color() generally expected to return nil if something goes wrong? It's cleaner than returning something random, but it'll still lead to an error if unchecked. - D <<<<<<< HEAD:src/nsterm.m /* for some reason, idx is 0 for undefined colors. Also, this function is called with very high indices at times (XXX: debug this.) */ if (idx > 0 && idx < color_table->size && ![color_table->empty_indices containsObject: [NSNumber numberWithUnsignedInt: idx]]) { /* fprintf(stderr, "lookup color %d\n", idx); */ return color_table->colors[idx]; } /* fprintf(stderr, "DISCARDING lookup color %d\n", idx); */ return [NSColor orangeColor]; // mark undefined color ======= if (idx < 1 || idx >= color_table->avail) return nil; return color_table->colors[idx]; >>>>>>> emacs23.1:src/nsterm.m