[Python-modules-commits] r23288 - in packages/python-dawg/trunk/debian/patches (1 file)

jwilk at users.alioth.debian.org jwilk at users.alioth.debian.org
Fri Jan 11 14:05:39 UTC 2013


    Date: Friday, January 11, 2013 @ 14:05:35
  Author: jwilk
Revision: 23288

Re-initialize the base64 decoder whenever needed.

Modified:
  packages/python-dawg/trunk/debian/patches/use-system-libraries.diff

Modified: packages/python-dawg/trunk/debian/patches/use-system-libraries.diff
===================================================================
--- packages/python-dawg/trunk/debian/patches/use-system-libraries.diff	2013-01-11 13:11:58 UTC (rev 23287)
+++ packages/python-dawg/trunk/debian/patches/use-system-libraries.diff	2013-01-11 14:05:35 UTC (rev 23288)
@@ -124,15 +124,48 @@
 \ No newline at end of file
 --- a/src/dawg.pyx
 +++ b/src/dawg.pyx
-@@ -507,7 +507,6 @@
+@@ -501,13 +501,14 @@
+     cdef list _value_for_index(self, BaseType index):
+         cdef list res = []
+         cdef int _len
+-        cdef b64_decode.decoder _b64_decoder
++        cdef b64_decode.decoder *_b64_decoder
+         cdef char[MAX_VALUE_SIZE] _b64_decoder_storage
+         cdef bytes payload
  
          self.completer.Start(index)
          while self.completer.Next():
 -            _b64_decoder.init()
++          _b64_decoder = new b64_decode.decoder()
++          try:
              _len = _b64_decoder.decode(
                  self.completer.key(),
                  self.completer.length(),
-@@ -554,7 +553,6 @@
+@@ -515,6 +516,8 @@
+             )
+             payload = _b64_decoder_storage[:_len]
+             res.append(payload)
++          finally:
++            del _b64_decoder
+ 
+         return res
+ 
+@@ -540,11 +543,13 @@
+             return res
+ 
+         cdef int _len
+-        cdef b64_decode.decoder _b64_decoder
++        cdef b64_decode.decoder *_b64_decoder
+         cdef char[MAX_VALUE_SIZE] _b64_decoder_storage
+ 
+         self.completer.Start(index, b_prefix)
+         while self.completer.Next():
++          _b64_decoder = new b64_decode.decoder()
++          try:
+             raw_key = <char*>self.completer.key()
+ 
+             for i in range(0, self.completer.length()):
+@@ -554,7 +559,6 @@
              raw_value = &(raw_key[i])
              raw_value_len = self.completer.length() - i
  
@@ -140,7 +173,31 @@
              _len = _b64_decoder.decode(raw_value, raw_value_len, _b64_decoder_storage)
              value = _b64_decoder_storage[:_len]
  
-@@ -593,7 +591,6 @@
+@@ -562,6 +566,8 @@
+             res.append(
+                 (u_key, value)
+             )
++          finally:
++            del _b64_decoder
+ 
+         return res
+ 
+@@ -579,11 +585,13 @@
+             return
+ 
+         cdef int _len
+-        cdef b64_decode.decoder _b64_decoder
++        cdef b64_decode.decoder *_b64_decoder
+         cdef char[MAX_VALUE_SIZE] _b64_decoder_storage
+ 
+         self.completer.Start(index, b_prefix)
+         while self.completer.Next():
++          _b64_decoder = new b64_decode.decoder()
++          try:
+             raw_key = <char*>self.completer.key()
+ 
+             for i in range(0, self.completer.length()):
+@@ -593,12 +601,13 @@
              raw_value = &(raw_key[i])
              raw_value_len = self.completer.length() - i
  
@@ -148,6 +205,13 @@
              _len = _b64_decoder.decode(raw_value, raw_value_len, _b64_decoder_storage)
              value = _b64_decoder_storage[:_len]
  
+             u_key = raw_key[:i].decode('utf8')
+             yield (u_key, value)
++          finally:
++            del _b64_decoder
+ 
+     cpdef list keys(self, unicode prefix=""):
+         cdef bytes b_prefix = prefix.encode('utf8')
 --- a/setup.py
 +++ b/setup.py
 @@ -26,6 +26,7 @@




More information about the Python-modules-commits mailing list