Commit graph

22 commits

Author SHA1 Message Date
mathieui
3fb3d8db3d Fix memleaks in pooptmodule.cut_text (ref #1914)
- we need to decrement the refcount after giving the tuple to the
  retlist in order to transfer ownership

The example script below will quickly take gigabytes of ram with the
old module, while the new will not take noticeably more memory.

The leak is not very visible on launch, because we “only” leaked each
tuple returned, and (int, int) is not heavy. However, after weeks of
use and many messages, the memory still isn’t freed and it shows.

import poopt
import gc

a = 'coucouco ' * 1000
for i in range(100000):
    if not (i % 10000):
        print(i)
    poopt.cut_text(a, 50)
2014-04-27 21:38:29 +02:00
mathieui
890945d037 Fix #2334 (wrong character length for formatting chars) 2013-07-31 23:56:49 +02:00
Florent Le Coz
9b51377185 Correctly use Py_ssize_t instead of int, fix a segfault on some architectures 2013-07-07 20:25:58 +02:00
Florent Le Coz
1a6dbad881 Better comments in poopt 2013-06-27 15:54:19 +02:00
Florent Le Coz
1ae7ff10d3 Nicer comments 2013-06-25 01:18:28 +02:00
Florent Le Coz
b7fbfb7f47 Aaaand that’s static 2013-06-25 01:17:20 +02:00
Florent Le Coz
f8c0d12750 Workaround for a bug (?) where wcwidth returns -1 for valid printable chars
For example 😆
2013-06-25 01:08:16 +02:00
Florent Le Coz
d81568eebe Use a logical order of arguments in the poopt functions, now 2013-06-20 23:28:40 +02:00
Florent Le Coz
ee0c29ada1 Use the correct arguments in PyArg_ParseTuple 2013-06-20 23:26:29 +02:00
Florent Le Coz
7d555a62f2 Little logic change 2013-06-20 23:25:53 +02:00
Florent Le Coz
da6c11603c Add a poopt function to cut a string by the number of columns it takes 2013-06-20 22:17:43 +02:00
Florent Le Coz
a92163d173 Fix some compilation warnings in the poopt module 2013-06-20 22:06:33 +02:00
Florent Le Coz
cbe0007249 Exposes the wcswidth function in the poopt module
see #2142
2013-06-19 22:19:08 +02:00
Florent Le Coz
0bcd420602 Consider the number of columns of each characters in the poopt module
Some characters take 0 columns, others take 1 or 2 (full-width characters)

fixes #2142
2013-06-19 22:18:50 +02:00
Florent Le Coz
463ec5ca0d Accept NULL bytes in strings to be cut by the poopt module
fix #2296
2013-06-07 00:04:01 +02:00
Florent Le Coz
5db9144303 Fix a byte value in the utf-8 decoding in poopt. 2012-11-30 15:14:21 +01:00
Florent Le Coz
52fd54d2ff Remove this usell ++-- from poopt 2011-11-23 19:48:12 +01:00
Florent Le Coz
1ccfd09552 poopt now handles correctly the size of the chars by jumping
the color attributes properly and ignoring their length.
2011-11-08 01:52:39 +01:00
Florent Le Coz
c332732d13 Clean a little bit the poopt module, and fix some comments 2011-09-14 13:59:25 +02:00
Florent Le Coz
96794a4e49 Change license to zlib (MIT sucks :() 2011-09-11 17:10:05 +02:00
Florent Le Coz
fa5b5fc45d Make it work. MAY segfault. Need intensive testing.
Should be A. LOT. FASTER. though.
2011-09-09 18:43:20 +02:00
Florent Le Coz
2e04c5c77e c code that doesn’t work 2011-09-08 17:05:02 +02:00