@@ -129,7 +129,7 @@ void ASiC_E::addAdESSignature(istream &data)
129129 THROW (" '%s' format is not supported" , mediaType ().c_str ());
130130 try
131131 {
132- loadSignatures (data, d->unique_name ());
132+ loadSignatures (XMLDocument::openStream ( data) , d->unique_name ());
133133 }
134134 catch (const Exception &e)
135135 {
@@ -149,9 +149,9 @@ unique_ptr<Container> ASiC_E::openInternal(const string &path)
149149 return unique_ptr<Container>(new ASiC_E (path));
150150}
151151
152- void ASiC_E::loadSignatures (istream &data , const string &file)
152+ void ASiC_E::loadSignatures (XMLDocument &&doc , const string &file)
153153{
154- auto signatures = make_shared<Signatures>(data , mediaType ());
154+ auto signatures = make_shared<Signatures>(std::move (doc) , mediaType ());
155155 d->signatures .emplace (file, signatures.get ());
156156 for (auto s = signatures->signature (); s; s++)
157157 addSignature (make_unique<SignatureXAdES_LTA>(signatures, s, this ));
@@ -170,8 +170,7 @@ void ASiC_E::parseManifestAndLoadFiles(const ZipSerialize &z)
170170
171171 try
172172 {
173- auto manifestdata = z.extract <stringstream>(" META-INF/manifest.xml" );
174- auto doc = XMLDocument::openStream (manifestdata, {" manifest" , MANIFEST_NS});
173+ auto doc = XMLDocument::open (z.read (" META-INF/manifest.xml" ), {" manifest" , MANIFEST_NS});
175174 doc.validateSchema (File::path (Conf::instance ()->xsdPath (), " OpenDocument_manifest_v1_2.xsd" ));
176175
177176 set<string_view> manifestFiles;
@@ -219,8 +218,7 @@ void ASiC_E::parseManifestAndLoadFiles(const ZipSerialize &z)
219218 {
220219 try
221220 {
222- auto data = z.extract <stringstream>(file);
223- loadSignatures (data, file);
221+ loadSignatures (XMLDocument::open (z.read (file)), file);
224222 }
225223 catch (const Exception &e)
226224 {
0 commit comments