https://bugs.documentfoundation.org/show_bug.cgi?id=146795
--- Comment #14 from Kohei Yoshida <[email protected]> --- (In reply to Aron Budea from comment #13) > (In reply to Kohei Yoshida from comment #7) > > If someone can isolate this to a reproducible case with mdds alone, that > > would be helpful. > Kohei, could you add code pointers where mdds is called during the described > steps? I don't have that info yet, but I can tell you how one may start investigating it. Before you begin, it would be helpful to look through this page: https://mdds.readthedocs.io/en/latest/multi_type_vector.html to get an overview of what mdds::multi_type_vector does. You don't have to read the entire page, but just going through the Quickstart section should give you a good idea of how to use mdds::multi_type_vector standalone. The page also have API reference toward the bottom. People here casually refers to mdds::multi_type_vector as just "mdds", but technically that's not correct. mdds contains multiple data structures that Calc uses, and multi_type_vector is just one of them. mdds::flat_segment_tree is another one Calc uses, but I won't go into that here. ScColumn::maCells data member is where all cell values are stored, so tracing its use would be the starting point. Here https://opengrok.libreoffice.org/s?refs=maCells&project=core shows all call sites of ScColumn::maCells which is quite extensive, understandably so since lots and lots of Calc code does access it since it's the core of Calc cell data I/O. Now, the entry point for pasting data into Calc can be tricky since there are several entry points depending on where the data being pasted is coming from. But I believe it's ScViewFunc:PasteFromClip() https://opengrok.libreoffice.org/xref/core/sc/source/ui/view/viewfun3.cxx?r=9436f7e2#871 for copy-n-pasting within the same Calc document. The bMarkIsFiltered flag on line 1024 is set, since the value is being pasted onto a filtered area i.e. autofilter is applied in the destination area. Eventually the code here will find its way into ScDocument::CopyToDocument, which moves to ScTable (sheet), and then eventually to ScColumn (column storage), and you can inspect how that code accesses and updates the maCells there... That's the gist of it. The tricky part is that, every action creates an undo object which also has its own ScDocument store, so that could be another source of the problem too. I just don't know where the problem may be... -- You are receiving this mail because: You are the assignee for the bug.
