https://bugzilla.novell.com/show_bug.cgi?id=700654
https://bugzilla.novell.com/show_bug.cgi?id=700654#c3
--- Comment #3 from Noel Power 2011-06-21 16:46:05 IST ---
ok, I see where this is happening but am none the wiser as to what the solution
is
relevant part of valgrind log is here ( note: line numbers probably are
slightly off due to some temporary printf(s) in the source )
==28471== Invalid read of size 1
==28471== at 0x248F0D9C: ScAreaLink::Refresh(String const&, String const&,
String const&, unsigned long) (arealink.cxx:429)
==28471== by 0x248EF85D: ScAreaLink::DataChanged(String const&,
com::sun::star::uno::Any const&) (arealink.cxx:153)
==28471== by 0x760E444: sfx2::SvBaseLink::Update() (lnkbase2.cxx:331)
==28471== by 0x244B579E: ScDocument::UpdateAreaLinks() (documen8.cxx:1342)
==28471== by 0x2492EB72: ScDocShell::Execute(SfxRequest&) (docsh4.cxx:498)
==28471== by 0x2491414A: SfxStubScDocShellExecute(SfxShell*, SfxRequest&)
(scslots.hxx:773)
==28471== by 0x767A1AB: SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&),
SfxRequest&) (shell.hxx:203)
==28471== by 0x7672BBB: SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&,
SfxRequest&, unsigned char) (dispatch.cxx:279)
==28471== by 0x767616D: SfxDispatcher::PostMsgHandler(SfxRequest*)
(dispatch.cxx:1511)
==28471== by 0x767605A: SfxDispatcher::LinkStubPostMsgHandler(void*, void*)
(dispatch.cxx:1481)
==28471== by 0x75D308F: Link::Call(void*) const (link.hxx:140)
==28471== by 0x784061E: GenLink::Call(void*) (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/solver/340/unxlngx6.pro/lib/libsfxlx.so)
==28471== by 0x784051C: SfxHintPoster::Event(SfxHint*) (hintpost.cxx:88)
==28471== by 0x784064F: SfxHintPoster::DoEvent_Impl(SfxHint*)
(hintpost.cxx:78)
==28471== by 0x78404F2: SfxHintPoster::LinkStubDoEvent_Impl(void*, void*)
(hintpost.cxx:82)
==28471== by 0x99FB117: ImplWindowFrameProc(Window*, SalFrame*, unsigned
short, void const*) (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvcllx.so)
==28471== by 0x138F1888: SalDisplay::DispatchInternalEvent() (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvclplug_genlx.so)
==28471== by 0x10CDA4CF: GtkXLib::userEventFn(void*) (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvclplug_gtklx.so)
==28471== by 0x13599BD2: g_main_context_dispatch (in
/lib64/libglib-2.0.so.0.2800.0)
==28471== by 0x1359A3AF: ??? (in /lib64/libglib-2.0.so.0.2800.0)
==28471== by 0x1359A64F: g_main_context_iteration (in
/lib64/libglib-2.0.so.0.2800.0)
==28471== by 0x10CD8A54: GtkXLib::Yield(bool, bool) (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvclplug_gtklx.so)
==28471== by 0x97E9E10: Application::Yield(bool) (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvcllx.so)
==28471== by 0x97E9EC6: Application::Execute() (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvcllx.so)
==28471== by 0x50B80B7: desktop::Desktop::Main() (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-core/desktop/unxlngx6.pro/lib/libsofficeapp.so)
==28471== by 0x97F0FE8: ImplSVMain() (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvcllx.so)
==28471== by 0x97F1084: SVMain() (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvcllx.so)
==28471== by 0x50DD6D4: soffice_main (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-core/desktop/unxlngx6.pro/lib/libsofficeapp.so)
==28471== by 0x400EFA: main (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/INSTALL_LINK/program/soffice.bin)
==28471== Address 0xe641e28 is 184 bytes inside a block of size 192 free'd
==28471== at 0x4C2599C: free (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==28471== by 0x248EF605: ScAreaLink::~ScAreaLink() (arealink.cxx:103)
==28471== by 0x75C31DE: SvRefBase::ReleaseReference() (ref.hxx:342)
==28471== by 0x760B073: sfx2::SvBaseLinkRef::Clear() (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/solver/340/unxlngx6.pro/lib/libsfxlx.so)
==28471== by 0x76080BD: sfx2::LinkManager::Remove(sfx2::SvBaseLink*)
(linkmgr2.cxx:136)
==28471== by 0x244B5D21: ScDocument::UpdateRefAreaLinks(UpdateRefMode,
ScRange const&, short, int, short) (documen8.cxx:1423)
==28471== by 0x2449EA40: ScDocument::UpdateReference(UpdateRefMode, short,
int, short, short, int, short, short, int, short, ScDocument*, unsigned char,
bool) (documen3.cxx:930)
==28471== by 0x244BCDB1: ScDocument::DeleteRow(short, short, short, short,
int, unsigned long, ScDocument*, unsigned char*, ScMarkData const*)
(document.cxx:994)
==28471== by 0x244BD072: ScDocument::DeleteRow(ScRange const&, ScDocument*,
unsigned char*) (document.cxx:1028)
==28471== by 0x244BE49E: ScDocument::FitBlock(ScRange const&, ScRange
const&, unsigned char) (document.cxx:1345)
==28471== by 0x248F0863: ScAreaLink::Refresh(String const&, String const&,
String const&, unsigned long) (arealink.cxx:374)
==28471== by 0x248EF85D: ScAreaLink::DataChanged(String const&,
com::sun::star::uno::Any const&) (arealink.cxx:153)
==28471== by 0x760E444: sfx2::SvBaseLink::Update() (lnkbase2.cxx:331)
==28471== by 0x244B579E: ScDocument::UpdateAreaLinks() (documen8.cxx:1342)
==28471== by 0x2492EB72: ScDocShell::Execute(SfxRequest&) (docsh4.cxx:498)
==28471== by 0x2491414A: SfxStubScDocShellExecute(SfxShell*, SfxRequest&)
(scslots.hxx:773)
==28471== by 0x767A1AB: SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&),
SfxRequest&) (shell.hxx:203)
==28471== by 0x7672BBB: SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&,
SfxRequest&, unsigned char) (dispatch.cxx:279)
==28471== by 0x767616D: SfxDispatcher::PostMsgHandler(SfxRequest*)
(dispatch.cxx:1511)
==28471== by 0x767605A: SfxDispatcher::LinkStubPostMsgHandler(void*, void*)
(dispatch.cxx:1481)
==28471== by 0x75D308F: Link::Call(void*) const (link.hxx:140)
==28471== by 0x784061E: GenLink::Call(void*) (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/solver/340/unxlngx6.pro/lib/libsfxlx.so)
==28471== by 0x784051C: SfxHintPoster::Event(SfxHint*) (hintpost.cxx:88)
==28471== by 0x784064F: SfxHintPoster::DoEvent_Impl(SfxHint*)
(hintpost.cxx:78)
==28471== by 0x78404F2: SfxHintPoster::LinkStubDoEvent_Impl(void*, void*)
(hintpost.cxx:82)
==28471== by 0x99FB117: ImplWindowFrameProc(Window*, SalFrame*, unsigned
short, void const*) (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvcllx.so)
==28471== by 0x138F1888: SalDisplay::DispatchInternalEvent() (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvclplug_genlx.so)
==28471== by 0x10CDA4CF: GtkXLib::userEventFn(void*) (in
/data4/OOO_BUILD_GIT/ooo-build/bootstrap/clone/libs-gui/vcl/unxlngx6.pro/lib/libvclplug_gtklx.so)
==28471== by 0x13599BD2: g_main_context_dispatch (in
/lib64/libglib-2.0.so.0.2800.0)
==28471== by 0x1359A3AF: ??? (in /lib64/libglib-2.0.so.0.2800.0)
==28471==
basically what it is saying is that in
void ScDocument::UpdateAreaLinks()
{
if (GetLinkManager())
{
const ::sfx2::SvBaseLinks& rLinks = pLinkManager->GetLinks();
sal_uInt16 nCount = rLinks.Count();
for (sal_uInt16 i=0; iISA(ScAreaLink))
pBase->Update(); <==================
}
}
}
the line indicated above triggers delete of the same SvBaseLink ( pBase )
via ScDocument::UpdateRefAreaLinks which removes the link
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.