Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi there,

FYI, I've just pushed a whole bunch of changes to the master branch in
order to implemented shared strings in Calc's document storage.  I'll
skip the implementation details, but the punch line is that the document
cell storage now stores svl::SharedString as the string cell values
instead of the previous straight OUString.  svl::SharedString stores two
ref-counted string storages (rtl_uString*), one for the normal string,
and one for the case-ignored string.  They are all normalized as they
are entered into the cell storage, so you can use the pointer values for
quick string equality check, both in case sensitive and case insensitive
manners.

One thing to note is that the strings are normalized per ScDocument
instance, and each ScDocument stores svl::SharedStringPool to store the
master string objects.  As such, be extra careful when copying string
values from one document instance to another, since you'll now have to
re-normalize those copied strings when they are entered into another
document instance.

Also, I'll probably continue making changes around this area, so please
be on the lookout for further changes in case you are working in the
vicinity of Calc core.

Thanks,

Kohei

-- 
Kohei Yoshida, LibreOffice hacker, Collabora Productivity
http://www.collabora.com/projects/libreoffice-welcome





Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.