aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Herbrechtsmeier2022-08-19 16:25:24 +0200
committerSimon Glass2022-08-20 18:07:33 -0600
commit204a27bbb222c61bf5aaecbf7e00a5a8aa835bf9 (patch)
tree9e25c0354c45402dba7ecb4bcb378edd0f1e370c
parentfa24f5578cc0a2dc3afe8ce0c7b53b2d4408434c (diff)
binman: Add DecompressData function to entry class
Add a DecompressData function to entry class to allow override in child classes and to centralize the compress and decompress in a single class. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--tools/binman/entry.py15
-rw-r--r--tools/binman/etype/section.py3
2 files changed, 16 insertions, 2 deletions
diff --git a/tools/binman/entry.py b/tools/binman/entry.py
index 1795d5cf300..b42b6df611b 100644
--- a/tools/binman/entry.py
+++ b/tools/binman/entry.py
@@ -1120,6 +1120,21 @@ features to produce new behaviours.
data = comp_util.compress(indata, self.compress)
return data
+ def DecompressData(self, indata):
+ """Decompress data according to the entry's compression method
+
+ Args:
+ indata: Data to decompress
+
+ Returns:
+ Decompressed data
+ """
+ data = comp_util.decompress(indata, self.compress)
+ if self.compress != 'none':
+ self.uncomp_size = len(data)
+ self.uncomp_data = data
+ return data
+
@classmethod
def UseExpanded(cls, node, etype, new_etype):
"""Check whether to use an expanded entry type
diff --git a/tools/binman/etype/section.py b/tools/binman/etype/section.py
index 8cae22f3c87..621950893f3 100644
--- a/tools/binman/etype/section.py
+++ b/tools/binman/etype/section.py
@@ -13,7 +13,6 @@ import concurrent.futures
import re
import sys
-from binman import comp_util
from binman.entry import Entry
from binman import state
from dtoc import fdt_util
@@ -777,7 +776,7 @@ class Entry_section(Entry):
data = parent_data[offset:offset + child.size]
if decomp:
indata = data
- data = comp_util.decompress(indata, child.compress)
+ data = child.DecompressData(indata)
if child.uncomp_size:
tout.info("%s: Decompressing data size %#x with algo '%s' to data size %#x" %
(child.GetPath(), len(indata), child.compress,