Files
loongoffice/sc
Luboš Luňák abb19edc79 blacklist ocExternal for calc's threaded calculations
Opcode ocExternal is used for functions implemented as UNO calls,
which has a number of problems:
- ooo#118213-2 contains GETEOMONTH(), which maps to ocExternal, which
  calls AnalysisAddIn::getEomonth() in scaddins, which ends up calling
  ScModelObj::getPropertyValue(), which deadlocks on SolarMutex
- it uses ScUnoAddInCollection class, which uses delayed initialization
  (even though it's created on-demand), which is not thread-safe; however,
  it seems that the initialization is generally done already while loading
  a file, so this is possibly in practice safe
- who knows what all kinds of race conditions there are in all the functions
  this may call via UNO

Change-Id: I80c4264102b8bc492853852c2c12e5cd2a8ea99e
Reviewed-on: https://gerrit.libreoffice.org/55382
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
2018-06-06 18:00:21 +02:00
..
2018-06-05 09:44:34 +02:00

Spreadsheet application code.

You can dump some information in a dbgutil build:

=== CTRL+SHIFT+F12 ===

Dumps the column width of the first 20 columns.

=== CTRL+SHIFT+F11 ===

Dumps the graphic objects and their position and size in pixel.

=== CTRL+SHIFT+F9 ===

Dumps the SfxItemSet representing the cell properties' of the
current selection as a xml file. The file will be named dump.xml

=== The Cache Format ===

ScDocument::StoreTabToCache allows storing the content (not the formatting)
of a table to a binary cache format.

The format is column orientated which allows quick serialization of the table.

Header:
    * Number of Columns: 64 bit unsigned integer

Column:
    * Column Index: 64 bit unsigned integer
    * Column Size: 64 bit unsigned integer
    * For each cell type block a new ColumnBlock

ColumnBlock:
    * Start Row: 64 bit unsigned integer
    * Block Size: 64 bit unsigned integer
    * Type: 8 bit unsigned integer
        - 0 : empty
        - 1 : numeric
            * for each cell: 64 bit IEEE 754 double precision value
        - 2 : string
            * for each cell: 32 bit signed string length followed by string length bytes of the string (UTF-8)
        - 3 : formula
            * for each cell: 32 bit signed string length followed by the formula in R1C1 notation as a string