Actions
Bug #948
closedsetBorder(WBorder border, WFlags<Side> sides = All)
Start date:
08/12/2011
Due date:
% Done:
0%
Estimated time:
Description
hey, Wt group:
I want to apply a concise style on a table like below:
void StatisticTable::applyConciseStyle(bool last_row_border) {
int row_c = table_->rowCount();
int col_c = table_->columnCount();
WBorder main_b;
main_b.setWidth(WBorder::Explicit, WLength(2));
main_b.setStyle(WBorder::Solid);
main_b.setColor(WColor("green"));
WBorder sub_b;
sub_b.setWidth(WBorder::Explicit, WLength(1));
sub_b.setStyle(WBorder::Solid);
sub_b.setColor(WColor("green"));
for(int tcol = 0; tcol < col_c; ++tcol) {
table_->elementAt(0, tcol)->decorationStyle().setBorder(main_b, Top);
table_->elementAt(1, tcol)->decorationStyle().setBorder(sub_b, Top);
if(last_row_border)
table_->elementAt(row_c-2, tcol)->decorationStyle().setBorder(sub_b, Bottom);
table_->elementAt(row_c-1, tcol)->decorationStyle().setBorder(main_b, Bottom);
}
, but the grind reported below:
==6828== Thread 8:
==6828== Invalid read of size 4
==6828== at 0x41F8A50: Wt::WBorder::cssText() const (WBorder.C:60)
==6828== by 0x422A3E3: Wt::WCssDecorationStyle::updateDomElement(Wt::DomElement&, bool) (WCssDecorationStyle.C:270)
==6828== by 0x43B3D1A: Wt::WWebWidget::updateDom(Wt::DomElement&, bool) (WWebWidget.C:1348)
==6828== by 0x42A01AB: Wt::WInteractWidget::updateDom(Wt::DomElement&, bool) (WInteractWidget.C:325)
==6828== by 0x42270CE: Wt::WContainerWidget::updateDom(Wt::DomElement&, bool) (WContainerWidget.C:520)
==6828== by 0x434E657: Wt::WTableCell::updateDom(Wt::DomElement&, bool) (WTableCell.C:96)
==6828== by 0x43B0EDB: Wt::WWebWidget::createDomElement(Wt::WApplication*) (WWebWidget.C:1780)
==6828== by 0x422613F: Wt::WContainerWidget::createDomElement(Wt::WApplication*, bool) (WContainerWidget.C:651)
==6828== by 0x422619B: Wt::WContainerWidget::createDomElement(Wt::WApplication*) (WContainerWidget.C:642)
==6828== by 0x43AC29E: Wt::WWebWidget::createActualElement(Wt::WApplication*) (WWebWidget.C:1823)
==6828== by 0x43C826C: Wt::WWidget::createSDomElement(Wt::WApplication*) (WWidget.C:316)
==6828== by 0x434C4C8: Wt::WTable::createRow(int, bool, Wt::WApplication*) (WTable.C:327)
==6828== Address 0x30 is not stack'd, malloc'd or (recently) free'd
==6828==
==6828== Process terminating with default action of signal 11 (SIGSEGV)
==6828== Access not within mapped region at address 0x30
==6828== at 0x41F8A50: Wt::WBorder::cssText() const (WBorder.C:60)
==6828== by 0x422A3E3: Wt::WCssDecorationStyle::updateDomElement(Wt::DomElement&, bool) (WCssDecorationStyle.C:270)
==6828== by 0x43B3D1A: Wt::WWebWidget::updateDom(Wt::DomElement&, bool) (WWebWidget.C:1348)
==6828== by 0x42A01AB: Wt::WInteractWidget::updateDom(Wt::DomElement&, bool) (WInteractWidget.C:325)
==6828== by 0x42270CE: Wt::WContainerWidget::updateDom(Wt::DomElement&, bool) (WContainerWidget.C:520)
==6828== by 0x434E657: Wt::WTableCell::updateDom(Wt::DomElement&, bool) (WTableCell.C:96)
==6828== by 0x43B0EDB: Wt::WWebWidget::createDomElement(Wt::WApplication*) (WWebWidget.C:1780)
==6828== by 0x422613F: Wt::WContainerWidget::createDomElement(Wt::WApplication*, bool) (WContainerWidget.C:651)
==6828== by 0x422619B: Wt::WContainerWidget::createDomElement(Wt::WApplication*) (WContainerWidget.C:642)
==6828== by 0x43AC29E: Wt::WWebWidget::createActualElement(Wt::WApplication*) (WWebWidget.C:1823)
==6828== by 0x43C826C: Wt::WWidget::createSDomElement(Wt::WApplication*) (WWidget.C:316)
==6828== by 0x434C4C8: Wt::WTable::createRow(int, bool, Wt::WApplication*) (WTable.C:327)
I changed some code like below, every thing is ok:
if(last_row_border)
table_->elementAt(row_c-1, tcol)->decorationStyle().setBorder(sub_b, Top);
table_->elementAt(row_c, tcol)->decorationStyle().setBorder(main_b, Top);
I think whether the setBorder(WBorder border, WFlags sides = All) does not work? it is fine in wt-3.1.9, in wt-3.1.10 I must change the setBorder(main_b, Bottom) to setBorder(main_b, Top).
Thanks
Best Regards
Zhimin
Updated by Koen Deforche over 13 years ago
- Status changed from New to Resolved
- Assignee set to Koen Deforche
- Target version set to 3.1.11
Hey Zhimin,
There was a typo in indeed a recently changed WCssDecorationStyle.
The fix will be in the public repo later today.
Regards,
koen
Updated by Koen Deforche about 13 years ago
- Status changed from Resolved to Closed
Resolved in Wt 3.1.11
Actions