there is one problem though: most styling API need to accept "long" (so as to have at least 32 bits) and in the styling buffer somewhere scintilla uses an array of such 'long', particularly during line layout, it may take much
memory (4 times as before for this buffer)
so the first question is this acceptable for the main stream distrib?

  For the LineLayout object, going for 4 byte styles always will
multiply line layout size by a little less than a factor of 2 as there
is already an int for each position. I feel this is an unreasonable
burden to current users memory budgets especially those who have
turned on whole document layout caching. Allocating style values
inside LineLayout the same width as in CellBuffer would be more
reasonable allowing users to control the memory budget. I'm not sure
the additional capability of 32 bits is worth the cost over 16 bits.

  As I'm concerned about potential problems with this change, it
would be best to publish a version with the change to it can be
exercised by more people before integration into the main
distribution.
hum, hum, so so, maybe we could go for a patch concerning only the CellBuffer now, the interfaces would change to 'long's... but it does not imply having to change everything behind. the code is already built to have dynamic number of styles bytes per character and the code in CellBuffer for that could be used or put elsewhere (probably as inline to avoid speed impact). currently I do not see the difference with respect to fixed size implementation but i did not study that precisely.

i'll try to find some time to make a patch (the latest version i integrated was 1.67) but the cellbuffer stuff should not have other impact... arggh, while i write that i realize that it is mixed with my START_ACTION notification... ok, i've got to see if i can separate stuff.

I wonder about something, could the LineLayout style buffer be 'run-length' encoded? it is a 'constant' (once loaded, never touched) and we access it from left to right/right to left no? maybe it's heavy stuff though to add a small iterator on that

Armel


_______________________________________________
Scintilla-interest mailing list
[email protected]
http://mailman.lyra.org/mailman/listinfo/scintilla-interest

Reply via email to