mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Speed up the qhash implementation
This commit is contained in:
parent
c893f0de7e
commit
3ab5097788
@ -31,10 +31,10 @@ 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.
|
||||
# Implementation of QtQHash for strings. This doesn't seem to be in the Python implementation.
|
||||
def qhash(inputstr):
|
||||
instr = ""
|
||||
if isinstance (inputstr, str):
|
||||
instr = b""
|
||||
if isinstance(inputstr, bytes):
|
||||
instr = inputstr
|
||||
elif isinstance(inputstr, unicode):
|
||||
instr = inputstr.encode("utf8")
|
||||
@ -42,8 +42,8 @@ def qhash (inputstr):
|
||||
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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user