optimising OUString for space
Noel Grandin
noel at peralex.com
Mon Oct 1 05:21:21 PDT 2012
On 2012-10-01 14:06, Michael Stahl wrote:
>> Or are you talking about memory management?
>> The current OUString class allocates a new character buffer for every
>> mutation, I assume we'd keep that strategy.
> you mean if i have some string and then add !a" "b" "c" to it it will
> re-allocate 3 times? that is too expensive. there needs to be some
> protocol to ensure exclusive ownership of the buffer (which the
> OUStringBuffer has automatically) and then whenever it's out of capacity
> double the allocation.
>
Ah, I see, you're talking about OUStringBuffer now, not OUString.
Yes, in that case, I imagine we'd store a boolean flag somewhere in the
structure to indicate that the buffer is read-only.
We could probably steal the high bit of the nCapacity field.
Then, a mutation to OUStringBuffer would cause the data to be copied to
a new, freshly allocated buffer, and then things would proceed as they
do currently.
Disclaimer: http://www.peralex.com/disclaimer.html
More information about the LibreOffice
mailing list