::unpack "if (fo)"; also "delete []" (SourceForge bug 3545609)
This commit is contained in:
+7
-4
@@ -1139,7 +1139,8 @@ void PackMachBase<T>::unpack(OutputFile *fo)
|
|||||||
) {
|
) {
|
||||||
if (lc_seg==sc->cmd
|
if (lc_seg==sc->cmd
|
||||||
&& 0!=sc->filesize ) {
|
&& 0!=sc->filesize ) {
|
||||||
fo->seek(sc->fileoff, SEEK_SET);
|
if (fo)
|
||||||
|
fo->seek(sc->fileoff, SEEK_SET);
|
||||||
unsigned filesize = sc->filesize;
|
unsigned filesize = sc->filesize;
|
||||||
unpackExtent(filesize, fo, total_in, total_out,
|
unpackExtent(filesize, fo, total_in, total_out,
|
||||||
c_adler, u_adler, false, sizeof(bhdr));
|
c_adler, u_adler, false, sizeof(bhdr));
|
||||||
@@ -1161,11 +1162,13 @@ void PackMachBase<T>::unpack(OutputFile *fo)
|
|||||||
if (lc_seg==rc->cmd
|
if (lc_seg==rc->cmd
|
||||||
&& 0!=rc->filesize ) {
|
&& 0!=rc->filesize ) {
|
||||||
fi->seek(rc->fileoff, SEEK_SET);
|
fi->seek(rc->fileoff, SEEK_SET);
|
||||||
fo->seek(sc->fileoff, SEEK_SET);
|
if (fo)
|
||||||
|
fo->seek(sc->fileoff, SEEK_SET);
|
||||||
unsigned const len = rc->filesize;
|
unsigned const len = rc->filesize;
|
||||||
MemBuffer data(len);
|
MemBuffer data(len);
|
||||||
fi->readx(data, len);
|
fi->readx(data, len);
|
||||||
fo->write(data, len);
|
if (fo)
|
||||||
|
fo->write(data, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1180,7 +1183,7 @@ void PackMachBase<T>::unpack(OutputFile *fo)
|
|||||||
c_adler, u_adler, false, sizeof(bhdr));
|
c_adler, u_adler, false, sizeof(bhdr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete mhdr;
|
delete [] mhdr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user