[Bf-blender-cvs] [709a31d] master: Simplify thumbnail blend parser

Campbell Barton noreply at git.blender.org
Mon Aug 17 04:49:34 CEST 2015


Commit: 709a31da93c9677ec6ebb17e780014f6ba8016ff
Author: Campbell Barton
Date:   Mon Aug 17 12:37:38 2015 +1000
Branches: master
https://developer.blender.org/rB709a31da93c9677ec6ebb17e780014f6ba8016ff

Simplify thumbnail blend parser

No need to convert the BHead code to an int, just compare the bytes.

===================================================================

M	release/bin/blender-thumbnailer.py

===================================================================

diff --git a/release/bin/blender-thumbnailer.py b/release/bin/blender-thumbnailer.py
index d3b31d6..fe5d462 100755
--- a/release/bin/blender-thumbnailer.py
+++ b/release/bin/blender-thumbnailer.py
@@ -88,9 +88,8 @@ def blend_extract_thumb(path):
     import os
     open_wrapper = open_wrapper_get()
 
-    # def MAKE_ID(tag): ord(tag[0])<<24 | ord(tag[1])<<16 | ord(tag[2])<<8 | ord(tag[3])
-    REND = 1145980242  # MAKE_ID(b'REND')
-    TEST = 1414743380  # MAKE_ID(b'TEST')
+    REND = b'REND'
+    TEST = b'TEST'
 
     blendfile = open_wrapper(path, 'rb')
 
@@ -116,7 +115,8 @@ def blend_extract_thumb(path):
         return None, 0, 0
 
     sizeof_bhead = 24 if is_64_bit else 20
-    int_endian_pair = '>ii' if is_big_endian else '<ii'
+    int_endian = '>i' if is_big_endian else '<i'
+    int_endian_pair = int_endian + 'i'
 
     while True:
         bhead = blendfile.read(sizeof_bhead)
@@ -124,7 +124,8 @@ def blend_extract_thumb(path):
         if len(bhead) < sizeof_bhead:
             return None, 0, 0
 
-        code, length = struct.unpack(int_endian_pair, bhead[0:8])  # 8 == sizeof(int) * 2
+        code = bhead[:4]
+        length = struct.unpack(int_endian, bhead[4:8])[0]  # 4 == sizeof(int)
 
         if code == REND:
             blendfile.seek(length, os.SEEK_CUR)




More information about the Bf-blender-cvs mailing list