@@ -727,10 +727,13 @@ - (uint32_t)hash { size_t i; uint32_t hash; + if (s->hashed) + return s->hash; + OF_HASH_INIT(hash); for (i = 0; i < s->cStringLength; i++) { of_unichar_t c; size_t length; @@ -747,10 +750,13 @@ i += length - 1; } OF_HASH_FINALIZE(hash); + s->hash = hash; + s->hashed = YES; + return hash; } - (of_unichar_t)characterAtIndex: (size_t)index {