solenv/gdb/libreoffice/sal.py | 4 ++-- solenv/gdb/libreoffice/util/string.py | 6 +++--- svx/source/sidebar/area/AreaPropertyPanelBase.cxx | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-)
New commits: commit 9a28c3693a9aa9de507cc0cdd78ffe597c807de5 Author: Michael Stahl <mst...@redhat.com> Date: Fri Sep 29 16:53:35 2017 +0200 gdb pretty-printers: fix StringPrinterHelper for gdb 8.0 Latest gdb release "lazy_string" validates the array size: Traceback (most recent call last): File "/work/lo/master/solenv/gdb/libreoffice/util/string.py", line 29, in to_string return self.make_string(data, self.encoding, len) File "/work/lo/master/solenv/gdb/libreoffice/util/string.py", line 66, in make_string return data.lazy_string(encoding, length) gdb.error: Length is larger than array size. rtl_uString has "sal_Unicode buffer[1];", which is a lie as the real size is the same as "length". Taking the address of "buffer" appears to avoid the exception. Change-Id: I85710b1adfae584ba09c8d517e9b49b290e79d8a (cherry picked from commit 205677c88cb01e2bbee278443867baed2c89e5fe) Reviewed-on: https://gerrit.libreoffice.org/42943 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/solenv/gdb/libreoffice/sal.py b/solenv/gdb/libreoffice/sal.py index c2e8384537be..8dcfaebe66e1 100644 --- a/solenv/gdb/libreoffice/sal.py +++ b/solenv/gdb/libreoffice/sal.py @@ -21,7 +21,7 @@ class RtlStringPrinter(StringPrinterHelper): super(RtlStringPrinter, self).__init__(typename, val, encoding) def data(self): - return self.val['buffer'] + return self.val['buffer'].address def length(self): return self.val['length'] @@ -37,7 +37,7 @@ class StringPrinter(StringPrinterHelper): def data(self): assert self.val['pData'] - return self.val['pData'].dereference()['buffer'] + return self.val['pData'].dereference()['buffer'].address def length(self): assert self.val['pData'] diff --git a/solenv/gdb/libreoffice/util/string.py b/solenv/gdb/libreoffice/util/string.py index 32583718f83b..742aabbaca27 100644 --- a/solenv/gdb/libreoffice/util/string.py +++ b/solenv/gdb/libreoffice/util/string.py @@ -52,15 +52,15 @@ class StringPrinterHelper(object): if not encoding: encoding = '' - if use_lazy_string: - return data.lazy_string(encoding, length) - # we need to determine length, if not given (for sal_Unicode*) if length < 0: length = 0 while data[length] != 0 and length <= 512: # arbitrary limit length += 1 + if use_lazy_string: + return data.lazy_string(encoding, length) + # The gdb.Value.string() conversion works on array of bytes, but # the length we have is the length of the string. So we must # multiply it by width of character if the string is Unicode. commit 584d87162aceaabd0a80674f07c65eda7318db8a Author: Julien Nabet <serval2...@yahoo.fr> Date: Thu Sep 28 22:12:42 2017 +0200 tdf#112727: crash in chart (transparency related) There's nothing to rearrange if mpFloatTransparenceItem isn't set 0 0x00007fffefb26748 in NameOrIndex::IsIndex() const (this=0x0) at /home/julien/lo/libreoffice/include/svx/xit.hxx:56 1 0x00007fffefb23140 in XFillGradientItem::GetGradientValue() const (this=0x0) at /home/julien/lo/libreoffice/svx/source/xoutdev/xattr.cxx:2009 2 0x00007ffff0b2c95a in svx::sidebar::AreaTransparencyGradientPopup::InitStatus(XFillFloatTransparenceItem const*) (this=0x55555859a520, pGradientItem=0x0) at /home/julien/lo/libreoffice/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx:61 3 0x00007ffff0b2cd33 in svx::sidebar::AreaTransparencyGradientPopup::Rearrange(XFillFloatTransparenceItem const*) (this=0x55555859a520, pGradientItem=0x0) at /home/julien/lo/libreoffice/svx/source/sidebar/area/AreaTransparencyGradientPopup.cxx:90 4 0x00007ffff0b262ae in svx::sidebar::AreaPropertyPanelBase::ClickTrGrHdl_Impl(ToolBox*) (this=0x555558485a50, pToolBox=0x5555586ed8c0) at /home/julien/lo/libreoffice/svx/source/sidebar/area/AreaPropertyPanelBase.cxx:1272 5 0x00007ffff0b26207 in svx::sidebar::AreaPropertyPanelBase::LinkStubClickTrGrHdl_Impl(void*, ToolBox*) (instance=0x555558485a50, data=0x5555586ed8c0) at /home/julien/lo/libreoffice/svx/source/sidebar/area/AreaPropertyPanelBase.cxx:1268 Change-Id: I1d2db6b91c888ca3598e0ea04dd0fa0e9fc790a7 Reviewed-on: https://gerrit.libreoffice.org/42925 Reviewed-by: Julien Nabet <serval2...@yahoo.fr> Tested-by: Julien Nabet <serval2...@yahoo.fr> (cherry picked from commit 1fba529cf2d810bfce1f3fbcad84b6f6805e1405) Reviewed-on: https://gerrit.libreoffice.org/42950 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx index 90140dfdb894..71c79af95cda 100644 --- a/svx/source/sidebar/area/AreaPropertyPanelBase.cxx +++ b/svx/source/sidebar/area/AreaPropertyPanelBase.cxx @@ -1272,7 +1272,8 @@ IMPL_LINK( AreaPropertyPanelBase, ClickTrGrHdl_Impl, ToolBox*, pToolBox, void ) { if (!mxTrGrPopup) mxTrGrPopup = VclPtr<AreaTransparencyGradientPopup>::Create(*this); - mxTrGrPopup->Rearrange(mpFloatTransparenceItem.get()); + if (mpFloatTransparenceItem.get()) + mxTrGrPopup->Rearrange(mpFloatTransparenceItem.get()); OSL_ASSERT( pToolBox->GetItemCommand(pToolBox->GetCurItemId()) == UNO_SIDEBARGRADIENT); mxTrGrPopup->StartPopupMode(pToolBox, FloatWinPopupFlags::GrabFocus); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits