diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-07-07 10:53:38 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-07-07 15:18:25 +0200 |
commit | c6902761d797253cda8b3f71f102c66108585e24 (patch) | |
tree | b472d3d72e640ea6f24cbca935c3f0086ce04f4a /solenv | |
parent | 23978f85533e66b18ee2e9b72ad2fc71a93958a3 (diff) |
Revert "use std::vector in BigPtrArray"
which is causing crashes in the crashtesting in
ooo119635-3.docx and ooo119568-2.docx
It is definitely some kind of use-after-free error, but the
compress and delete logic for BigPtrArray is too hairy for me
to debug right now.
This reverts commit 1eee0abd459a508a6dcf9e71cbf2c1be3725faa7.
Also revert commit 4f743419a04375160437a910254c45dea396f70d
"gdb pretty-printers: fix BigPtrArrayPrinter after recent std::isation"
Change-Id: Id870876432a060f9347aafb43bf0df692ea24464
Reviewed-on: https://gerrit.libreoffice.org/39684
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'solenv')
-rw-r--r-- | solenv/gdb/libreoffice/sw.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/solenv/gdb/libreoffice/sw.py b/solenv/gdb/libreoffice/sw.py index 031963f5c789..cfb3cec3eeb7 100644 --- a/solenv/gdb/libreoffice/sw.py +++ b/solenv/gdb/libreoffice/sw.py @@ -194,10 +194,10 @@ class BigPtrArrayPrinter(object): class _iterator(six.Iterator): def __init__(self, array): - self.blocks = array['m_vpInf']['_M_impl']['_M_start'] + self.blocks = array['m_ppInf'] self.count = array['m_nSize'] self.pos = 0 - self.block_count = array['m_vpInf']['_M_impl']['_M_finish'] - array['m_vpInf']['_M_impl']['_M_start'] + self.block_count = array['m_nBlock'] self.block_pos = 0 self.block = None self.indent = "" @@ -246,7 +246,7 @@ class BigPtrArrayPrinter(object): raise StopIteration() name = str(self.pos) - node = self.block['mvData']['_M_elems'][self.pos - self.block['nStart']] + node = self.block['pData'][self.pos - self.block['nStart']] value = self._node_value(node) if self.pos == self.block['nEnd']: self._next_block() |