incubator-ooo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From 彭云全 <>
Subject [Call-for-Review][Calc][From Symphony]Crash if undo redo creating data pilot from imported data
Date Wed, 13 Jun 2012 06:04:43 GMT
hI All,

    My name is pengyunquan. I am a developer working several years in
Symphony team. My specail areas are PivotTable / Graphic / VCL /

I have a patch for review.

Root Cause : A rule in calc is that inserting a sheet should enable
DrawUndo first, because inserting a new sheet will cause a new
ScDrawPage being inserted into SdrModel, and this action should be
managed by DrawUndo. But on creation of PivotTable, this rule is not
obeyed. When creating PivotTable on new sheet, a new sheet is inserted
without enablement of DrawUndo. As a result, when undo the creation of
PivotTable, the new sheet is removed but the SdrModel is not by
synchronized because it's the DrawUndo's responsibility to do the
synchronization but DrawUndo is not recorded. When inserting sheets
from file for the 2nd time, the undo list is cleared and some
ScDrawPage should be destroyed, but as stated above the ScDrawPage is
not correctly maintained when undo the creation of PivotTable, so
incorrect ScDrawPage is destroyed and cause dead object access later.

Solution : Enable DrawUndo before inserting a new sheet on creation of

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message