const xml_attr* xml2_node::first_attr(void) const { ACL_ARRAY* a = node_->attr_list; if (a == NULL) return NULL; if (attr_iter_ == NULL) const_cast<xml2_node*>(this)->attr_iter_ = (ACL_ITER*) acl_mymalloc(sizeof(ACL_ITER)); ACL_XML2_ATTR* attr = (ACL_XML2_ATTR*) a->iter_head(attr_iter_, a); if (attr == NULL) return NULL; xml2_attr* xa = NEW xml2_attr(const_cast<xml2_node*>(this), attr); const_cast<xml2_node*>(this)->attrs_tmp_.push_back(xa); return xa; }
const xml_attr* xml_node::first_attr(void) const { ACL_ARRAY* a = node_->attr_list; if (a == NULL) return NULL; if (attr_iter_ == NULL) const_cast<xml_node*>(this)->attr_iter_ = (ACL_ITER*) acl_mymalloc(sizeof(ACL_ITER)); ACL_XML_ATTR* attr = (ACL_XML_ATTR*) a->iter_head(attr_iter_, a); if (attr == NULL) return NULL; if (attr_ == NULL) const_cast<xml_node*>(this)->attr_ = NEW xml_attr(); const_cast<xml_node*>(this)->attr_->node_ = const_cast<xml_node*>(this); const_cast<xml_node*>(this)->attr_->attr_ = attr; return attr_; }