Browse Source

QGCLZMA: init crc table only once

QGC4.4
Beat Küng 4 years ago committed by Don Gagne
parent
commit
a2bc1d8572
  1. 12
      src/Compression/QGCLZMA.cc

12
src/Compression/QGCLZMA.cc

@ -13,8 +13,13 @@ @@ -13,8 +13,13 @@
#include <QDir>
#include <QtDebug>
#include <mutex>
#include "xz.h"
static std::once_flag crc_init;
bool QGCLZMA::inflateLZMAFile(const QString& lzmaFilename, const QString& decompressedFilename)
{
QFile inputFile(lzmaFilename);
@ -30,9 +35,10 @@ bool QGCLZMA::inflateLZMAFile(const QString& lzmaFilename, const QString& decomp @@ -30,9 +35,10 @@ bool QGCLZMA::inflateLZMAFile(const QString& lzmaFilename, const QString& decomp
}
// TODO: call once during startup
xz_crc32_init();
xz_crc64_init();
std::call_once(crc_init, []() {
xz_crc32_init();
xz_crc64_init();
});
xz_dec *s = xz_dec_init(XZ_DYNALLOC, (uint32_t)-1);

Loading…
Cancel
Save