bool init(DeserializedNode& node) { if (!edges.reserve(node.edges.length())) return false; for (DeserializedEdge* edgep = node.edges.begin(); edgep != node.edges.end(); edgep++) { char16_t* name = nullptr; if (edgep->name) { name = NS_strdup(edgep->name); if (!name) return false; } auto referent = node.getEdgeReferent(*edgep); edges.infallibleAppend(mozilla::Move(Edge(name, referent))); } settle(); return true; }