https://bugs.documentfoundation.org/show_bug.cgi?id=141619

Kevin Suo <suokunl...@126.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|4.2.8.2 release             |4.2.0.4 release

--- Comment #8 from Kevin Suo <suokunl...@126.com> ---
Bug introduced by the any of the following 3 commits related to the switch to
use mdds for cell storage.

1. commit c008dc483f8c6840803983e7e351cec6fdd32070
Author: Kohei Yoshida <kohei.yosh...@gmail.com>
Date:   Fri May 24 11:52:18 2013 -0400

    Switch to using multi_type_vector for cell storage.

2. commit 3b0c069c9a157c4cd9ec5636c776115af6d9664f
Author: Kohei Yoshida <kohei.yosh...@gmail.com>
Date:   Wed Jun 19 11:54:12 2013 -0400

    Don't forget to return true if we are successful.

3. commit e3b91687590f08438b5a5d4eec72e634b11a8589
Author: Kohei Yoshida <kohei.yosh...@gmail.com>
Date:   Wed Jun 19 16:48:32 2013 -0400

    Fix the horizontal cell iterator.

(Note that #2 is to fix the hang when open a calc document, and #3 is to fix a
crach when open a calc document, so the most possible first bad commit is #1.
However, #3 may also possible to cause the bug.)

==========

Below I describe how I identified the 3 commits, in case someone is interested:

1. Set up a old Fedora 19 VM.
Branch off based on:
commit ac84ffb3c90bb5788608eadf2177f587021daaad (Remove unnecessary debug
outputs that would slow down perf tests., 2013-05-22)

I use this as the base for the new branch because it is the last known commit
which can pass the build before commit c7bdee8dbd1cf260a8513a0d31b36f90daa70f1c
which added "#include <mdds/multi_type_vector_custom_func3.hpp> but this header
file does not exists in mdds 0.8.1 (this header is added in 0.9.0).

2. cherry-pick the mdds 0.9.0 commits:
$ git cherry-pick -x 878f46727d8bcf1f75d056d9270ef3e2fe0b9d88
$ git cherry-pick -x bb7d5ce2a8bd1dca51eb627aa2df811541053969
$ git cherry-pick -x 4347e3b15f10784b482544bd6324d3fcd4f0146c

and adjust the following file (see mdds 0.9.0 API Incompatibility Note)

sc/inc/mtvelements.hxx:

-typedef mdds::mtv::custom_block_func1<sc::element_type_broadcaster,
sc::custom_broadcaster_block> BCBlkFunc;
+typedef mdds::mtv::custom_block_func1<sc::custom_broadcaster_block> BCBlkFunc;

-typedef mdds::mtv::custom_block_func1<sc::element_type_celltextattr,
sc::custom_celltextattr_block> CTAttrFunc;
+typedef mdds::mtv::custom_block_func1<sc::custom_celltextattr_block>
CTAttrFunc;

sc/source/core/tool/scmatrix.cxx:
-        static void delete_block(mdds::mtv::base_element_block* p)
+        static void delete_block(const mdds::mtv::base_element_block* p)

Build successful. Tested and bug does not exists.

3. Cherry-pick the first commit in the bibisect range:
c7bdee8dbd1cf260a8513a0d31b36f90daa70f1c Define block types for string, edit
text and formula cell elements.
(need to fix a confict due to step 2)

4. Commit the following changes to make the above commit buildable:
sc/inc/mtvelements.hxx
 // Cell container
 typedef mdds::mtv::custom_block_func3<
-    sc::element_type_string, sc::string_block,
-    sc::element_type_edittext, sc::edittext_block,
-    sc::element_type_formula, sc::formula_block> CellFunc;
+    sc::string_block,
+    sc::edittext_block,
+    sc::formula_block> CellFunc;

Build successful. Bug does not exists.

5. cherry-pick
77ec47356025de4e46f48f94629f896349b0a8e5 Reduce dependency on mtvelements.hxx
header.
build successful. Bug does not exists.

6. Cherry-pick
e9c5eb60d53204261c7937108bd53e86e46fc2f3 Re-org the headers a bit. In
column?.cxx, column.hxx must be the first.
Building sucessful. Bug does not exists.

7. cherry-pick
75dec25730c88bdb8eb5e2a3f92689460fa89d29 Add new cell container to ScColumn.
No need to build and test because this change does not change any behaviour.

8. Cherry-pick
c008dc483f8c6840803983e7e351cec6fdd32070 Switch to using multi_type_vector for
cell storage.
(need to resolve conflicts)
Building sucessful, but hang when opening the test file and crash when create
empty calc document, so we need next steps.

9. Cherry-pick these two commits which are for the fix of the hang and the
crash:
3b0c069c9a157c4cd9ec5636c776115af6d9664f Don't forget to return true if we are
successful.
e3b91687590f08438b5a5d4eec72e634b11a8589 Fix the horizontal cell iterator.

Build successful. But exists!

So:
e3b91687590f08438b5a5d4eec72e634b11a8589 Fix the horizontal cell iterator.
3b0c069c9a157c4cd9ec5636c776115af6d9664f Don't forget to return true if we are
successful.
c008dc483f8c6840803983e7e351cec6fdd32070 Switch to using multi_type_vector for
cell storage.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to