[DEBUG] correct segfault after updating for exml

This commit is contained in:
Edouard DUPIN 2016-04-19 22:10:38 +02:00
parent faad7fcd41
commit 43c46cddd5
2 changed files with 12 additions and 11 deletions

View File

@ -125,7 +125,7 @@ ewol::Padding ewol::widget::Container2::onChangeSizePadded(const ewol::Padding&
if (m_subWidget[iii] != nullptr) { if (m_subWidget[iii] != nullptr) {
vec2 origin2 = origin+m_offset; vec2 origin2 = origin+m_offset;
vec2 minSize = m_subWidget[iii]->getCalculateMinSize(); vec2 minSize = m_subWidget[iii]->getCalculateMinSize();
bvec2 expand = m_subWidget[iii]->propertyExpand.get(); //bvec2 expand = m_subWidget[iii]->propertyExpand.get();
origin2 += ewol::gravityGenerateDelta(propertyGravity, minSize - localAvaillable); origin2 += ewol::gravityGenerateDelta(propertyGravity, minSize - localAvaillable);
m_subWidget[iii]->setOrigin(m_origin + origin); m_subWidget[iii]->setOrigin(m_origin + origin);
m_subWidget[iii]->setSize(subElementSize); m_subWidget[iii]->setSize(subElementSize);
@ -183,11 +183,12 @@ bool ewol::widget::Container2::loadXML(const exml::Element& _node) {
ewol::Widget::loadXML(_node); ewol::Widget::loadXML(_node);
// remove previous element : // remove previous element :
subWidgetRemove(); subWidgetRemove();
EWOL_VERBOSE("Create en element 2 ... with nodes.size()=" << _node.nodes.size());
// parse all the elements : // parse all the elements:
for(const auto it : _node.nodes) { for(const auto it : _node.nodes) {
exml::Element pNode = _node.toElement(); EWOL_VERBOSE(" node: " << it);
if (pNode.exist()) { exml::Element pNode = it.toElement();
if (pNode.exist() == false) {
// trash here all that is not element // trash here all that is not element
continue; continue;
} }
@ -200,7 +201,7 @@ bool ewol::widget::Container2::loadXML(const exml::Element& _node) {
if (getSubWidget() != nullptr) { if (getSubWidget() != nullptr) {
toogleMode=true; toogleMode=true;
if (getSubWidgetToggle() != nullptr) { if (getSubWidgetToggle() != nullptr) {
EWOL_ERROR("(l " << pNode.getPos() << ") " << __class__ << " Can only have one subWidget ??? node='" << widgetName << "'" ); EWOL_ERROR("(l " << pNode.getPos() << ") Can only have one subWidget ??? node='" << widgetName << "'" );
continue; continue;
} }
} }

View File

@ -273,20 +273,20 @@ bool ewol::widget::ContainerN::loadXML(const exml::Element& _node) {
} }
// parse all the elements : // parse all the elements :
for (const auto nodeIt : _node.nodes) { for (const auto nodeIt : _node.nodes) {
const exml::Element pNode = _node.toElement(); const exml::Element pNode = nodeIt.toElement();
if (pNode.exist() == false) { if (pNode.exist() == false) {
// trash here all that is not element // trash here all that is not element
continue; continue;
} }
std::string widgetName = pNode.getValue(); std::string widgetName = pNode.getValue();
if (getWidgetManager().exist(widgetName) == false) { if (getWidgetManager().exist(widgetName) == false) {
EWOL_ERROR("[" << getId() << "] {" << getObjectType() << "} (l " << pNode.getPos() << ") Unknown basic node=\"" << widgetName << "\" not in : [" << getWidgetManager().list() << "]" ); EWOL_ERROR("[" << getId() << "] {" << getObjectType() << "} (l " << pNode.getPos() << ") Unknown basic node='" << widgetName << "' not in : [" << getWidgetManager().list() << "]" );
continue; continue;
} }
EWOL_DEBUG("[" << getId() << "] {" << getObjectType() << "} load new element : \"" << widgetName << "\""); EWOL_DEBUG("[" << getId() << "] {" << getObjectType() << "} load new element : '" << widgetName << "'");
ewol::WidgetShared subWidget = getWidgetManager().create(widgetName); ewol::WidgetShared subWidget = getWidgetManager().create(widgetName);
if (subWidget == nullptr) { if (subWidget == nullptr) {
EWOL_ERROR ("[" << getId() << "] {" << getObjectType() << "} (l " << pNode.getPos() << ") Can not create the widget : \"" << widgetName << "\""); EWOL_ERROR ("[" << getId() << "] {" << getObjectType() << "} (l " << pNode.getPos() << ") Can not create the widget : '" << widgetName << "'");
continue; continue;
} }
// add sub element : // add sub element :
@ -296,7 +296,7 @@ bool ewol::widget::ContainerN::loadXML(const exml::Element& _node) {
subWidgetAddStart(subWidget); subWidgetAddStart(subWidget);
} }
if (subWidget->loadXML(pNode) == false) { if (subWidget->loadXML(pNode) == false) {
EWOL_ERROR ("[" << getId() << "] {" << getObjectType() << "} (l " << pNode.getPos() << ") can not load widget properties : \"" << widgetName << "\""); EWOL_ERROR("[" << getId() << "] {" << getObjectType() << "} (l " << pNode.getPos() << ") can not load widget properties : '" << widgetName << "'");
return false; return false;
} }
} }