[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