void LoadVersionV1(TiXmlElement *verNode, Package *pkg) { const char *name = verNode->Attribute("name"); if(!name) name = ""; Version *ver = new Version(name, pkg); unique_ptr<Version> ptr(ver); const char *author = verNode->Attribute("author"); if(author) ver->setAuthor(author); const char *time = verNode->Attribute("time"); if(time) ver->setTime(time); TiXmlElement *node = verNode->FirstChildElement("source"); while(node) { LoadSourceV1(node, ver); node = node->NextSiblingElement("source"); } node = verNode->FirstChildElement("changelog"); if(node) { if(const char *changelog = node->GetText()) ver->setChangelog(changelog); } if(pkg->addVersion(ver)) ptr.release(); }