tdf#50916 : Calc : Dynamic column container

Dennis Francis dennisfrancis.in at gmail.com
Thu Oct 8 17:14:58 PDT 2015


Hi All

I have made an attempt at making the column container relatively dynamic in
the hope of increasing the column limit to 16K. The patch I have made (
https://gist.github.com/dennisfrancis/ba7254405f77282214bb#file-lo16kcols-patch
) does not have the required "big" refactoring, and have just enough
changes to make everything compile and pass
the unit tests. I was not sure whether to put this very incomplete version
in gerrit.

The underlying data structure is now a std::vector whose size can
dynamically move between
1K(min) and 16K(max). This is wrapped in a template class called
ScColContainer which could be
used in places where fixed size (MAXCOLCOUNT) arrays are used. The
underlying data structure
can be changed relatively easily inside this template class without
breaking the methods/operator
signatures.

Before I begin further refactoring I would like to discuss the various
possibilities of data structures
which you already have in mind, that could be used here instead of just a
std::vector, and their merits, demerits etc..

In the current approach, the plan is to have the same performance
guarantees for sheets upto 1K cols and for sheets greater 1K, allocate only
the required number of columns and only iterate over the column range 0 to
largest column present actually in the sheet, instead of iterating over a
fixed col range (0 to MAXCOL).

Please point out any deficiencies, blockades with my current approach and
indicate better methods.

Thanks for you time.

Regards,
Dennis

www.ldcs.co.in
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/libreoffice/attachments/20151009/68abdbd2/attachment.html>


More information about the LibreOffice mailing list