aboutsummaryrefslogtreecommitdiff
path: root/src/liblzma/api
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2008-12-31 00:30:49 +0200
committerLasse Collin <lasse.collin@tukaani.org>2008-12-31 00:30:49 +0200
commit7ed9d943b31d3ee9c5fb2387e84a241ba33afe90 (patch)
tree5f9107c718aa996be6850b431ba319584064c9d7 /src/liblzma/api
parentUse 28 MiB as memory usage limit for encoding in test_compress.sh. (diff)
downloadxz-7ed9d943b31d3ee9c5fb2387e84a241ba33afe90.tar.xz
Remove lzma_init() and other init functions from liblzma API.
Half of developers were already forgetting to use these functions, which could have caused total breakage in some future liblzma version or even now if --enable-small was used. Now liblzma uses pthread_once() to do the initializations unless it has been built with --disable-threads which make these initializations thread-unsafe. When --enable-small isn't used, liblzma currently gets needlessly linked against libpthread (on systems that have it). While it is stupid for now, liblzma will need threads in future anyway, so this stupidity will be temporary only. When --enable-small is used, different code CRC32 and CRC64 is now used than without --enable-small. This made the resulting binary slightly smaller, but the main reason was to clean it up and to handle the lack of lzma_init_check(). The pkg-config file lzma.pc was renamed to liblzma.pc. I'm not sure if it works correctly and portably for static linking (Libs.private includes -pthread or other operating system specific flags). Hopefully someone complains if it is bad. lzma_rc_prices[] is now included as a precomputed array even with --enable-small. It's just 128 bytes now that it uses uint8_t instead of uint32_t. Smaller array seemed to be at least as fast as the more bloated uint32_t array on x86; hopefully it's not bad on other architectures.
Diffstat (limited to 'src/liblzma/api')
-rw-r--r--src/liblzma/api/Makefile.am1
-rw-r--r--src/liblzma/api/lzma.h1
-rw-r--r--src/liblzma/api/lzma/init.h85
3 files changed, 0 insertions, 87 deletions
diff --git a/src/liblzma/api/Makefile.am b/src/liblzma/api/Makefile.am
index c69e7548..f5101f96 100644
--- a/src/liblzma/api/Makefile.am
+++ b/src/liblzma/api/Makefile.am
@@ -22,7 +22,6 @@ nobase_include_HEADERS = \
lzma/filter.h \
lzma/index.h \
lzma/index_hash.h \
- lzma/init.h \
lzma/lzma.h \
lzma/simple.h \
lzma/stream_flags.h \
diff --git a/src/liblzma/api/lzma.h b/src/liblzma/api/lzma.h
index d19687b7..ef7a1086 100644
--- a/src/liblzma/api/lzma.h
+++ b/src/liblzma/api/lzma.h
@@ -197,7 +197,6 @@ extern "C" {
/* Basic features */
#include "lzma/version.h"
-#include "lzma/init.h"
#include "lzma/base.h"
#include "lzma/vli.h"
#include "lzma/check.h"
diff --git a/src/liblzma/api/lzma/init.h b/src/liblzma/api/lzma/init.h
deleted file mode 100644
index 9195e752..00000000
--- a/src/liblzma/api/lzma/init.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * \file lzma/init.h
- * \brief Initializations
- *
- * \author Copyright (C) 1999-2006 Igor Pavlov
- * \author Copyright (C) 2007 Lasse Collin
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- */
-
-#ifndef LZMA_H_INTERNAL
-# error Never include this file directly. Use <lzma.h> instead.
-#endif
-
-
-/**
- * \brief Initialize all internal static variables
- *
- * Depending on the build options, liblzma may have some internal static
- * variables, that must be initialized before using any other part of
- * the library (*). It is recommended to do these initializations in the very
- * beginning of the application by calling appropriate initialization function.
- *
- * (*) There are some exceptions to this rule. FIXME
- *
- * The initialization functions are not necessarily thread-safe, thus the
- * required initializations must be done before creating any threads. (The
- * rest of the functions of liblzma are thread-safe.) Calling the
- * initialization functions multiple times does no harm, although it
- * still shouldn't be done when there are multiple threads running.
- *
- * lzma_init() initializes all internal static variables by calling
- * lzma_init_encoder() and lzma_init_decoder().
- *
- * If you need only encoder, decoder, or neither-encoder-nor-decoder
- * functions, you may use other initialization functions, which initialize
- * only a subset of liblzma's internal static variables. Using those
- * functions have the following advantages:
- * - When linking statically against liblzma, fewer useless functions will
- * get linked into the binary. E.g. if you need only the decoder functions,
- * using lzma_init_decoder() avoids linking bunch of encoder related code.
- * - There is less things to initialize, making the initialization
- * process slightly faster.
- */
-extern void lzma_init(void);
-
-
-/**
- * \brief Initialize internal static variables needed by encoders
- *
- * If you need only the encoder functions, you may use this function to
- * initialize only the things required by encoders.
- *
- * This function also calls lzma_init_check().
- */
-extern void lzma_init_encoder(void);
-
-
-/**
- * \brief Initialize internal static variables needed by decoders
- *
- * If you need only the decoder functions, you may use this function to
- * initialize only the things required by decoders.
- *
- * This function also calls lzma_init_check().
- */
-extern void lzma_init_decoder(void);
-
-
-/**
- * \brief Initialize internal static variables needed by integrity checks
- *
- * Currently this initializes CRC32 and CRC64 lookup tables if precalculated
- * tables haven't been built into the library. This function can be useful
- * if the only thing you need from liblzma is the integrity check functions.
- */
-extern void lzma_init_check(void);