Browse Source

QGCLZMA: init crc table only once

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

8
src/Compression/QGCLZMA.cc

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

Loading…
Cancel
Save