From dc6a5f95afca159f8274ac588935dbcdfeb8f34b Mon Sep 17 00:00:00 2001 From: gryf Date: Fri, 25 Jun 2021 19:59:47 +0200 Subject: [PATCH] Fixed weird way for detecting big/little endian platforms. --- ebook_converter/ebooks/lrf/lrfparser.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ebook_converter/ebooks/lrf/lrfparser.py b/ebook_converter/ebooks/lrf/lrfparser.py index 34fbd86..56fc778 100644 --- a/ebook_converter/ebooks/lrf/lrfparser.py +++ b/ebook_converter/ebooks/lrf/lrfparser.py @@ -1,6 +1,7 @@ import array import itertools import re +import sys from ebook_converter.utils.config import OptionParser from ebook_converter.utils.filenames import ascii_filename @@ -41,11 +42,11 @@ class LRFDocument(LRFMetaFile): def _parse_objects(self): self.objects = {} self._file.seek(self.object_index_offset) - obj_array = array.array("I", - self._file.read(4 * 4 * - self.number_of_objects)) - if ord(array.array("i", [1]).tostring()[0:1]) == 0: # big-endian + obj_array = array.array("I", self._file.read(4 * 4 * + self.number_of_objects)) + if sys.byteorder == 'big': obj_array.byteswap() + for i in range(self.number_of_objects): if not self.keep_parsing: break