bool appendSVGPathByteStreamFromSVGPathSeg(RefPtr<SVGPathSeg>&& pathSeg, SVGPathByteStream& result, PathParsingMode parsingMode) { // FIXME: https://bugs.webkit.org/show_bug.cgi?id=15412 - Implement normalized path segment lists! ASSERT(parsingMode == UnalteredParsing); SVGPathSegList appendedItemList(PathSegUnalteredRole); appendedItemList.append(WTFMove(pathSeg)); SVGPathByteStream appendedByteStream; SVGPathSegListSource source(appendedItemList); bool ok = SVGPathParser::parseToByteStream(source, result, parsingMode, false); if (ok) result.append(appendedByteStream); return ok; }
bool appendSVGPathByteStreamFromSVGPathSeg(PassRefPtr<SVGPathSeg> pathSeg, SVGPathByteStream* result, PathParsingMode parsingMode) { ASSERT(result); // FIXME: https://bugs.webkit.org/show_bug.cgi?id=15412 - Implement normalized path segment lists! ASSERT(parsingMode == UnalteredParsing); SVGPathSegList appendedItemList(PathSegUnalteredRole); appendedItemList.append(pathSeg); auto appendedByteStream = std::make_unique<SVGPathByteStream>(); SVGPathByteStreamBuilder* builder = globalSVGPathByteStreamBuilder(appendedByteStream.get()); auto source = std::make_unique<SVGPathSegListSource>(appendedItemList); SVGPathParser* parser = globalSVGPathParser(source.get(), builder); bool ok = parser->parsePathDataFromSource(parsingMode, false); parser->cleanup(); if (ok) result->append(appendedByteStream.get()); return ok; }