I missed the zoom/ascent/descent but still its only 4 ints. Why do you need prev + old ones? There are 5 values including font, you are comparing the current values to the set that your cached height meets to avoid re-calculating height. There is only one compare for each hash calculation, so hashing gives no real benefit that I see since you do the hash calculation of the current values each time, hashes are good if you need lots of compares each time.
To me: ``` font = sci_get_string(sci, SCI_STYLEGETFONT, 0); size = SSM(sci, SCI_STYLEGETSIZEFRACTIONAL, 0, 0); zoom = SSM(sci, SCI_GETZOOM, 0, 0); descent = SSM(sci, SCI_GETEXTRADESCENT, 0, 0); ascent = SSM(sci, SCI_GETEXTRAASCENT, 0, 0); if(cached_size == size && cached_zoom == zoom && cached_descent = descent && cached_zoom == zoom && cached_ascent == ascent && strcmp(cached_font, font) == 0) ...... ``` is clearer and guaranteed to be correct. -- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/geany/geany/commit/b08ae0fe65c0942dca20281d6841dc83406d8b5e#commitcomment-46786953
