You are here: Home / Program / Development 2 / New data structure for Writer core?

New data structure for Writer core?

One major problem that is hard to fix with the current core data structures of Writer is anything that relates to tracking of changes - undo and change-tracking (redlining) itself. This talk attempts to outline a new data structure that will make these tasks easier & a trivial operation.

Jan Holesovsky
26.Sep.2013 from 09:00 to 10:00
60 minutes
Sala Beta

Details of the Talk

One major problem that is hard to fix with the current core data structures of Writer is anything that relates to tracking of changes - undo and change-tracking (redlining) itself. It is because the data structures use naive approach to the document - there is one array of 'nodes' (BigPtrArray), and additional data structures that take care of the changes.

There are editors that use different data structure, so called "piece table", that has the advantage that it contains the change tracking information in the data structure itself, so it is trivial to traverse the changes. But, it is unusable for us, because it would mean a complete Writer core rewrite. But - is there a possibility to upgrade or rework the BigPtrArray so that it would contain the change tracking information in itself in a git-like fashion? That would allow us to do the changes incrementally - first upgrade the BigPtrArray without affecting the current functionality, and then do the rest.

Sponsored By


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 GNU Lesser General Public License ( LGPL v.3 ).

Legal

"LibreOffice" and "The Document Foundation" are registered 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.

Privacy Policy || Impressum (Legal Info)