[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#3605: Crash in ns_index_color (nsterm.m:1305)

From: David Reitter
Subject: bug#3605: Crash in ns_index_color (nsterm.m:1305)
Date: Thu, 23 Jul 2009 16:16:26 +0100

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

Attachment: smime.p7s
Description: S/MIME cryptographic signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]