Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.0/patches/2175799/?format=api
{ "id": 2175799, "url": "http://patchwork.ozlabs.org/api/1.0/patches/2175799/?format=api", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/1.0/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20251218232255.3934258-5-trini@konsulko.com>", "date": "2025-12-18T23:10:16", "name": "[RFC,4/9] lzma: Update 9.22 -> 9.38", "commit_ref": null, "pull_url": null, "state": "rfc", "archived": false, "hash": "ab34081ea31b06a70c7298aa830915d29ce44ebf", "submitter": { "id": 65875, "url": "http://patchwork.ozlabs.org/api/1.0/people/65875/?format=api", "name": "Tom Rini", "email": "trini@konsulko.com" }, "delegate": { "id": 3651, "url": "http://patchwork.ozlabs.org/api/1.0/users/3651/?format=api", "username": "trini", "first_name": "Tom", "last_name": "Rini", "email": "trini@ti.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20251218232255.3934258-5-trini@konsulko.com/mbox/", "series": [ { "id": 485929, "url": "http://patchwork.ozlabs.org/api/1.0/series/485929/?format=api", "date": "2025-12-18T23:10:12", "name": "Update lzma to current version of LZMA SDK", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/485929/mbox/" } ], "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2175799/checks/", "tags": {}, "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=konsulko.com header.i=@konsulko.com header.a=rsa-sha256\n header.s=google header.b=ZO8oMBJB;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=konsulko.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=konsulko.com header.i=@konsulko.com\n header.b=\"ZO8oMBJB\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=konsulko.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=trini@konsulko.com" ], "Received": [ "from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dXRYp0TF7z1xty\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 10:23:42 +1100 (AEDT)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 51374838FA;\n\tFri, 19 Dec 2025 00:23:08 +0100 (CET)", "by phobos.denx.de (Postfix, from userid 109)\n id 9D505833C6; Fri, 19 Dec 2025 00:23:06 +0100 (CET)", "from mail-ot1-x32c.google.com (mail-ot1-x32c.google.com\n [IPv6:2607:f8b0:4864:20::32c])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id BC109835C6\n for <u-boot@lists.denx.de>; Fri, 19 Dec 2025 00:23:03 +0100 (CET)", "by mail-ot1-x32c.google.com with SMTP id\n 46e09a7af769-7c71cca8fc2so724412a34.1\n for <u-boot@lists.denx.de>; Thu, 18 Dec 2025 15:23:03 -0800 (PST)", "from bill-the-cat.. (fixed-189-203-103-235.totalplay.net.\n [189.203.103.235]) by smtp.gmail.com with ESMTPSA id\n 5614622812f47-457b3cc0928sm295333b6e.10.2025.12.18.15.23.01\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 18 Dec 2025 15:23:01 -0800 (PST)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=konsulko.com; s=google; t=1766100182; x=1766704982; darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=yH3e9mk8Hor0BHuIreJ8sQYoAcrdt3RVhCqwWecHgbA=;\n b=ZO8oMBJBCUMlTkmlDHHvcdM3KoxfSkx7WxS/5cPJlmZ+0MDNrUb8L7INyXEv2alwdD\n yftkMJOal/Kv+L4VfFhA4WmUKmSEL2Q6D8XCM52K5D7d36/3eBmk7Dh5nVxkVtfvZtsN\n 86DqhMCkA1+YRhGJdcscT0YKJtYd2RcmcyraY=", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1766100182; x=1766704982;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=yH3e9mk8Hor0BHuIreJ8sQYoAcrdt3RVhCqwWecHgbA=;\n b=rduqxSHAnY8C8GCe2kyiRG0kDOSWW3fn8lyqEBndb3gXFkdZkbyu6jlo+U/Qq2bZWV\n m4qUvHvwLF1c2umvd6qlKskiQjT4tfYrHxJLkqS50Q2si04DBsjlAAin+NaE0p4ZTbS6\n dLmdQLSVWCdIQQuKyfIXBN5hNvXchsTiQzO1TtdmNhFdPzL+1S/HIeYI3G1cuAvVBGpE\n 3njZJUXdIvTv7VxeaR/Es8gF42bjEQqjgXtRnFvom7nN7BwSeqnjLbTT45IxCTPGeVAf\n FUQBX0FEzLA0D0El9hUrr0r8aM8uUexC/Nxe7V199Wud0XQ9tqqbYvSw6i1ssuxmri7D\n PthA==", "X-Gm-Message-State": "AOJu0Yx4TUmSUu+zxzmV5YaYnijlYV3FOWaBgFzH9Fn0ViMYdvtovSeW\n NcIt1J+aIX0FL/pEzvLW7GW37YCSXaInPdv2aTVJRaI/zbeyJLAWlfw0WpwQqsya3jy2oYyl3gy\n lQncvjCA=", "X-Gm-Gg": "AY/fxX63/Sa7vW1c/dQklZ1aSHv3TPSRNrUCEtl8VFs4s4t+uh+c653jL5iwbBpE+jG\n ePNhJX0tf0yfFS8h+E2s9SiuVpTUIt+CMq7sniZj0uIVIQVBrrlzH9SAcQHKXEM56IgN+xY79va\n 6MX68iZ8j7VoAw3B0CG+gCzLkKQm89my461JO45m3LsLxDwkTJXt3xnY7ZcGX26UAL8ch/iK+Bv\n EX0Ze/LY9NOD4hqGDfasGz5xsygHHNvhnoUHK1oLLnmeNWTcqT+Hmw79MzK9qXdgloeZBXgfhmG\n 3t8DebxuzGqEqbAt/Jb8QXacQI7rm50W9h45eSig34s+jPnuMr+0IX9hfpJGNikJ06I2r0ONqG8\n p59PiceQ3bcV4LeHLrdrPSjnc2bvBJ7Zg7FClLNMgmLfwmr/ePhBugeTK7zNDv5Cd2+ywdme8j1\n r5so+fh0fbdSoQZBkuVxCYqc2uOllKJCJIfR7ijQO7bvzaRWM90edQ", "X-Google-Smtp-Source": "\n AGHT+IHDl/arH+n20iG4CD5pu3vyx8gcdKaMVA3Ygz4QD7QZB54oG8Vr9WWYbo8X75dJ4NBfYF8yUA==", "X-Received": "by 2002:a05:6808:250d:b0:455:8b5b:c763 with SMTP id\n 5614622812f47-457b2201259mr653952b6e.67.1766100182322;\n Thu, 18 Dec 2025 15:23:02 -0800 (PST)", "From": "Tom Rini <trini@konsulko.com>", "To": "u-boot@lists.denx.de", "Cc": "Darek <x64x6a@gmail.com>", "Subject": "[RFC PATCH 4/9] lzma: Update 9.22 -> 9.38", "Date": "Thu, 18 Dec 2025 17:10:16 -0600", "Message-ID": "<20251218232255.3934258-5-trini@konsulko.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20251218232255.3934258-1-trini@konsulko.com>", "References": "<20251218232255.3934258-1-trini@konsulko.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "Of note is that the license for this code is now found in the \"7zC.txt\"\nfile upstream, so include that.\n\nSigned-off-by: Tom Rini <trini@konsulko.com>\n---\n include/lzma/LzmaTypes.h | 2 +-\n lib/lzma/7zC.txt | 187 ++++++++++++++++++++++++++++++++\n lib/lzma/{Types.h => 7zTypes.h} | 14 ++-\n lib/lzma/Compiler.h | 28 +++++\n lib/lzma/LzmaDec.c | 48 ++++++--\n lib/lzma/LzmaDec.h | 4 +-\n lib/lzma/Precomp.h | 10 ++\n lib/lzma/license.txt | 3 -\n 8 files changed, 275 insertions(+), 21 deletions(-)\n create mode 100644 lib/lzma/7zC.txt\n rename lib/lzma/{Types.h => 7zTypes.h} (96%)\n create mode 100644 lib/lzma/Compiler.h\n create mode 100644 lib/lzma/Precomp.h\n delete mode 100644 lib/lzma/license.txt", "diff": "diff --git a/include/lzma/LzmaTypes.h b/include/lzma/LzmaTypes.h\nindex 3670c3ff91e0..1bd39b40e8f3 100644\n--- a/include/lzma/LzmaTypes.h\n+++ b/include/lzma/LzmaTypes.h\n@@ -14,6 +14,6 @@\n */\n #define Byte LZByte\n \n-#include \"../../lib/lzma/Types.h\"\n+#include \"../../lib/lzma/7zTypes.h\"\n \n #endif\ndiff --git a/lib/lzma/7zC.txt b/lib/lzma/7zC.txt\nnew file mode 100644\nindex 000000000000..10d3f4792f16\n--- /dev/null\n+++ b/lib/lzma/7zC.txt\n@@ -0,0 +1,187 @@\n+7z ANSI-C Decoder 9.35\n+----------------------\n+\n+7z ANSI-C provides 7z/LZMA decoding.\n+7z ANSI-C version is simplified version ported from C++ code.\n+\n+LZMA is default and general compression method of 7z format\n+in 7-Zip compression program (www.7-zip.org). LZMA provides high\n+compression ratio and very fast decompression.\n+\n+\n+LICENSE\n+-------\n+\n+7z ANSI-C Decoder is part of the LZMA SDK.\n+LZMA SDK is written and placed in the public domain by Igor Pavlov.\n+\n+Files\n+---------------------\n+\n+7zDecode.* - Low level 7z decoding\n+7zExtract.* - High level 7z decoding\n+7zHeader.* - .7z format constants\n+7zIn.* - .7z archive opening\n+7zItem.* - .7z structures\n+7zMain.c - Test application\n+\n+\n+How To Use\n+----------\n+\n+You can create .7z archive with 7z.exe, 7za.exe or 7zr.exe:\n+\n+ 7z.exe a archive.7z *.htm -r -mx -m0fb=255\n+\n+If you have big number of files in archive, and you need fast extracting,\n+you can use partly-solid archives:\n+\n+ 7za.exe a archive.7z *.htm -ms=512K -r -mx -m0fb=255 -m0d=512K\n+\n+In that example 7-Zip will use 512KB solid blocks. So it needs to decompress only\n+512KB for extracting one file from such archive.\n+\n+\n+Limitations of current version of 7z ANSI-C Decoder\n+---------------------------------------------------\n+\n+ - It reads only \"FileName\", \"Size\", \"LastWriteTime\" and \"CRC\" information for each file in archive.\n+ - It supports only LZMA and Copy (no compression) methods with BCJ or BCJ2 filters.\n+ - It converts original UTF-16 Unicode file names to UTF-8 Unicode file names.\n+\n+These limitations will be fixed in future versions.\n+\n+\n+Using 7z ANSI-C Decoder Test application:\n+-----------------------------------------\n+\n+Usage: 7zDec <command> <archive_name>\n+\n+<Command>:\n+ e: Extract files from archive\n+ l: List contents of archive\n+ t: Test integrity of archive\n+\n+Example:\n+\n+ 7zDec l archive.7z\n+\n+lists contents of archive.7z\n+\n+ 7zDec e archive.7z\n+\n+extracts files from archive.7z to current folder.\n+\n+\n+How to use .7z Decoder\n+----------------------\n+\n+Memory allocation\n+~~~~~~~~~~~~~~~~~\n+\n+7z Decoder uses two memory pools:\n+1) Temporary pool\n+2) Main pool\n+Such scheme can allow you to avoid fragmentation of allocated blocks.\n+\n+\n+Steps for using 7z decoder\n+--------------------------\n+\n+Use code at 7zMain.c as example.\n+\n+1) Declare variables:\n+ inStream /* implements ILookInStream interface */\n+ CSzArEx db; /* 7z archive database structure */\n+ ISzAlloc allocImp; /* memory functions for main pool */\n+ ISzAlloc allocTempImp; /* memory functions for temporary pool */\n+\n+2) call CrcGenerateTable(); function to initialize CRC structures.\n+\n+3) call SzArEx_Init(&db); function to initialize db structures.\n+\n+4) call SzArEx_Open(&db, inStream, &allocMain, &allocTemp) to open archive\n+\n+This function opens archive \"inStream\" and reads headers to \"db\".\n+All items in \"db\" will be allocated with \"allocMain\" functions.\n+SzArEx_Open function allocates and frees temporary structures by \"allocTemp\" functions.\n+\n+5) List items or Extract items\n+\n+ Listing code:\n+ ~~~~~~~~~~~~~\n+\n+ Use SzArEx_GetFileNameUtf16 function. Look example code in C\\Util\\7z\\7zMain.c file.\n+\n+\n+ Extracting code:\n+ ~~~~~~~~~~~~~~~~\n+\n+ SZ_RESULT SzAr_Extract(\n+ CArchiveDatabaseEx *db,\n+ ILookInStream *inStream,\n+ UInt32 fileIndex, /* index of file */\n+ UInt32 *blockIndex, /* index of solid block */\n+ Byte **outBuffer, /* pointer to pointer to output buffer (allocated with allocMain) */\n+ size_t *outBufferSize, /* buffer size for output buffer */\n+ size_t *offset, /* offset of stream for required file in *outBuffer */\n+ size_t *outSizeProcessed, /* size of file in *outBuffer */\n+ ISzAlloc *allocMain,\n+ ISzAlloc *allocTemp);\n+\n+ If you need to decompress more than one file, you can send these values from previous call:\n+ blockIndex,\n+ outBuffer,\n+ outBufferSize,\n+ You can consider \"outBuffer\" as cache of solid block. If your archive is solid,\n+ it will increase decompression speed.\n+\n+ After decompressing you must free \"outBuffer\":\n+ allocImp.Free(outBuffer);\n+\n+6) call SzArEx_Free(&db, allocImp.Free) to free allocated items in \"db\".\n+\n+\n+\n+\n+Memory requirements for .7z decoding\n+------------------------------------\n+\n+Memory usage for Archive opening:\n+ - Temporary pool:\n+ - Memory for uncompressed .7z headers\n+ - some other temporary blocks\n+ - Main pool:\n+ - Memory for database:\n+ Estimated size of one file structures in solid archive:\n+ - Size (4 or 8 Bytes)\n+ - CRC32 (4 bytes)\n+ - LastWriteTime (8 bytes)\n+ - Some file information (4 bytes)\n+ - File Name (variable length) + pointer + allocation structures\n+\n+Memory usage for archive Decompressing:\n+ - Temporary pool:\n+ - Memory for LZMA decompressing structures\n+ - Main pool:\n+ - Memory for decompressed solid block\n+ - Memory for temprorary buffers, if BCJ2 fileter is used. Usually these\n+ temprorary buffers can be about 15% of solid block size.\n+\n+\n+7z Decoder doesn't allocate memory for compressed blocks.\n+Instead of this, you must allocate buffer with desired\n+size before calling 7z Decoder. Use 7zMain.c as example.\n+\n+\n+Defines\n+-------\n+\n+_SZ_ALLOC_DEBUG - define it if you want to debug alloc/free operations to stderr.\n+\n+\n+---\n+\n+http://www.7-zip.org\n+http://www.7-zip.org/sdk.html\n+http://www.7-zip.org/support.html\ndiff --git a/lib/lzma/Types.h b/lib/lzma/7zTypes.h\nsimilarity index 96%\nrename from lib/lzma/Types.h\nrename to lib/lzma/7zTypes.h\nindex 6f7e735c1f68..953db1afc49e 100644\n--- a/lib/lzma/Types.h\n+++ b/lib/lzma/7zTypes.h\n@@ -1,15 +1,15 @@\n-/* Types.h -- Basic types\n-2010-10-09 : Igor Pavlov : Public domain */\n+/* 7zTypes.h -- Basic types\n+2013-11-12 : Igor Pavlov : Public domain */\n \n #ifndef __7Z_TYPES_H\n #define __7Z_TYPES_H\n \n-#include <stddef.h>\n-\n #ifdef _WIN32\n-#include <windows.h>\n+/* #include <windows.h> */\n #endif\n \n+#include <stddef.h>\n+\n #define SZ_OK 0\n \n #define SZ_ERROR_DATA 1\n@@ -31,7 +31,8 @@\n typedef int SRes;\n \n #ifdef _WIN32\n-typedef DWORD WRes;\n+/* typedef DWORD WRes; */\n+typedef unsigned WRes;\n #else\n typedef int WRes;\n #endif\n@@ -97,6 +98,7 @@ typedef int Bool;\n \n #else\n \n+#define MY_NO_INLINE\n #define MY_CDECL\n #define MY_FAST_CALL\n \ndiff --git a/lib/lzma/Compiler.h b/lib/lzma/Compiler.h\nnew file mode 100644\nindex 000000000000..6e964897e1ee\n--- /dev/null\n+++ b/lib/lzma/Compiler.h\n@@ -0,0 +1,28 @@\n+/* Compiler.h -- Compiler ypes\n+2013-11-12 : Igor Pavlov : Public domain */\n+\n+#ifndef __7Z_COMPILER_H\n+#define __7Z_COMPILER_H\n+\n+#ifdef _MSC_VER\n+\n+ #ifdef UNDER_CE\n+ #define RPC_NO_WINDOWS_H\n+ /* #pragma warning(disable : 4115) // '_RPC_ASYNC_STATE' : named type definition in parentheses */\n+ #pragma warning(disable : 4201) // nonstandard extension used : nameless struct/union\n+ #pragma warning(disable : 4214) // nonstandard extension used : bit field types other than int\n+ #endif\n+\n+ #if _MSC_VER >= 1300\n+ #pragma warning(disable : 4996) // This function or variable may be unsafe\n+ #else\n+ #pragma warning(disable : 4511) // copy constructor could not be generated\n+ #pragma warning(disable : 4512) // assignment operator could not be generated\n+ #pragma warning(disable : 4702) // unreachable code\n+ #pragma warning(disable : 4710) // not inlined\n+ #pragma warning(disable : 4786) // identifier was truncated to '255' characters in the debug information\n+ #endif\n+\n+#endif\n+\n+#endif\ndiff --git a/lib/lzma/LzmaDec.c b/lib/lzma/LzmaDec.c\nindex c6ff8ef26758..53196e37076b 100644\n--- a/lib/lzma/LzmaDec.c\n+++ b/lib/lzma/LzmaDec.c\n@@ -1,5 +1,7 @@\n /* LzmaDec.c -- LZMA Decoder\n-2010-12-15 : Igor Pavlov : Public domain */\n+2015-01-01 : Igor Pavlov : Public domain */\n+\n+#include \"Precomp.h\"\n \n #include <config.h>\n #include <watchdog.h>\n@@ -46,6 +48,13 @@\n i -= 0x40; }\n #endif\n \n+#define NORMAL_LITER_DEC GET_BIT(prob + symbol, symbol)\n+#define MATCHED_LITER_DEC \\\n+ matchByte <<= 1; \\\n+ bit = (matchByte & offs); \\\n+ probLit = prob + offs + bit + symbol; \\\n+ GET_BIT2(probLit, symbol, offs &= ~bit, offs &= bit)\n+\n #define NORMALIZE_CHECK if (range < kTopValue) { if (buf >= bufLimit) return DUMMY_ERROR; range <<= 8; code = (code << 8) | (*buf++); }\n \n #define IF_BIT_0_CHECK(p) ttt = *(p); NORMALIZE_CHECK; bound = (range >> kNumBitModelTotalBits) * ttt; if (code < bound)\n@@ -175,26 +184,47 @@ static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte\n {\n state -= (state < 4) ? state : 3;\n symbol = 1;\n-\n- do { GET_BIT(prob + symbol, symbol) } while (symbol < 0x100);\n+ #ifdef _LZMA_SIZE_OPT\n+ do { NORMAL_LITER_DEC } while (symbol < 0x100);\n+ #else\n+ NORMAL_LITER_DEC\n+ NORMAL_LITER_DEC\n+ NORMAL_LITER_DEC\n+ NORMAL_LITER_DEC\n+ NORMAL_LITER_DEC\n+ NORMAL_LITER_DEC\n+ NORMAL_LITER_DEC\n+ NORMAL_LITER_DEC\n+ #endif\n }\n else\n {\n- unsigned matchByte = p->dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];\n+ unsigned matchByte = dic[(dicPos - rep0) + ((dicPos < rep0) ? dicBufSize : 0)];\n unsigned offs = 0x100;\n state -= (state < 10) ? 3 : 6;\n symbol = 1;\n-\n+ #ifdef _LZMA_SIZE_OPT\n do\n {\n unsigned bit;\n CLzmaProb *probLit;\n- matchByte <<= 1;\n- bit = (matchByte & offs);\n- probLit = prob + offs + bit + symbol;\n- GET_BIT2(probLit, symbol, offs &= ~bit, offs &= bit)\n+ MATCHED_LITER_DEC\n }\n while (symbol < 0x100);\n+ #else\n+ {\n+ unsigned bit;\n+ CLzmaProb *probLit;\n+ MATCHED_LITER_DEC\n+ MATCHED_LITER_DEC\n+ MATCHED_LITER_DEC\n+ MATCHED_LITER_DEC\n+ MATCHED_LITER_DEC\n+ MATCHED_LITER_DEC\n+ MATCHED_LITER_DEC\n+ MATCHED_LITER_DEC\n+ }\n+ #endif\n }\n dic[dicPos++] = (Byte)symbol;\n processedPos++;\ndiff --git a/lib/lzma/LzmaDec.h b/lib/lzma/LzmaDec.h\nindex 14b247b802bf..1e266991fd08 100644\n--- a/lib/lzma/LzmaDec.h\n+++ b/lib/lzma/LzmaDec.h\n@@ -1,10 +1,10 @@\n /* LzmaDec.h -- LZMA Decoder\n-2009-02-07 : Igor Pavlov : Public domain */\n+2013-01-18 : Igor Pavlov : Public domain */\n \n #ifndef __LZMA_DEC_H\n #define __LZMA_DEC_H\n \n-#include \"Types.h\"\n+#include \"7zTypes.h\"\n \n /* #define _LZMA_PROB32 */\n /* _LZMA_PROB32 can increase the speed on some CPUs,\ndiff --git a/lib/lzma/Precomp.h b/lib/lzma/Precomp.h\nnew file mode 100644\nindex 000000000000..e8ff8b40e81a\n--- /dev/null\n+++ b/lib/lzma/Precomp.h\n@@ -0,0 +1,10 @@\n+/* Precomp.h -- StdAfx\n+2013-11-12 : Igor Pavlov : Public domain */\n+\n+#ifndef __7Z_PRECOMP_H\n+#define __7Z_PRECOMP_H\n+\n+#include \"Compiler.h\"\n+/* #include \"7zTypes.h\" */\n+\n+#endif\ndiff --git a/lib/lzma/license.txt b/lib/lzma/license.txt\ndeleted file mode 100644\nindex 48b9820c4081..000000000000\n--- a/lib/lzma/license.txt\n+++ /dev/null\n@@ -1,3 +0,0 @@\n- License\n-\n-LZMA SDK is placed in the public domain.\n", "prefixes": [ "RFC", "4/9" ] }