Speed up the qhash implementation

This commit is contained in:
Kovid Goyal 2013-09-18 21:27:31 +05:30
parent c893f0de7e
commit 3ab5097788

View File

@ -31,19 +31,19 @@ from calibre.utils.config_base import prefs
EPUB_EXT = '.epub'
# Implementation of QtQHash for strings. This doesn't seem to be in the Python implemention.
def qhash (inputstr):
instr = ""
if isinstance (inputstr, str):
# Implementation of QtQHash for strings. This doesn't seem to be in the Python implementation.
def qhash(inputstr):
instr = b""
if isinstance(inputstr, bytes):
instr = inputstr
elif isinstance (inputstr, unicode):
instr = inputstr.encode ("utf8")
elif isinstance(inputstr, unicode):
instr = inputstr.encode("utf8")
else:
return -1
h = 0x00000000
for i in range (0, len (instr)):
h = (h << 4) + ord(instr[i])
for x in bytearray(instr):
h = (h << 4) + x
h ^= (h & 0xf0000000) >> 23
h &= 0x0fffffff
@ -1251,7 +1251,7 @@ class KOBOTOUCH(KOBO):
max_supported_fwversion = (2,9,1)
min_fwversion_images_on_sdcard = (2,4,1)
min_fwversion_images_tree = (2,9,0) # Cover images stored in tree under .kobo-images
min_fwversion_images_tree = (2,9,0) # Cover images stored in tree under .kobo-images
has_kepubs = True