Variant HHVM_METHOD(XMLReader, expand, const Variant& basenode /* = null */) { auto* data = Native::data<XMLReader>(this_); Object doc; xmlDocPtr docp = nullptr; SYNC_VM_REGS_SCOPED(); if (!basenode.isNull()) { DOMNode *dombasenode = toDOMNode(basenode.toObject().get()); doc = dombasenode->doc(); docp = (xmlDocPtr) toDOMNode(doc.get())->m_node; if (docp == nullptr) { raise_warning("Invalid State Error"); return false; } } else { doc = DOMDocument::newInstance(); } if (data->m_ptr) { xmlNodePtr node = xmlTextReaderExpand(data->m_ptr); if (node == nullptr) { raise_warning("An Error Occurred while expanding"); return false; } else { xmlNodePtr nodec = xmlDocCopyNode(node, docp, 1); if (nodec == nullptr) { raise_notice("Cannot expand this node type"); return false; } else { return php_dom_create_object(nodec, doc, false); } } } raise_warning("Load Data before trying to read"); return false; }