Rev 168: __sizeof__ was accidentally dereferencing _dummy entries, which in http://bazaar.launchpad.net/~meliae-dev/meliae/trunk
John Arbash Meinel
john at arbash-meinel.com
Thu Jul 29 17:03:35 BST 2010
At http://bazaar.launchpad.net/~meliae-dev/meliae/trunk
------------------------------------------------------------
revno: 168
revision-id: john at arbash-meinel.com-20100729160315-cfc2qurrdxdngjyf
parent: john at arbash-meinel.com-20100729155300-iuvsrugm61e1y9ih
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: trunk
timestamp: Thu 2010-07-29 11:03:15 -0500
message:
__sizeof__ was accidentally dereferencing _dummy entries, which
caused immediate segfault.
-------------- next part --------------
=== modified file 'meliae/_loader.pyx'
--- a/meliae/_loader.pyx 2010-07-29 15:53:00 +0000
+++ b/meliae/_loader.pyx 2010-07-29 16:03:15 +0000
@@ -646,7 +646,7 @@
+ (sizeof(_MemObject**) * (self._table_mask + 1)))
for i from 0 <= i <= self._table_mask:
cur = self._table[i]
- if cur != NULL:
+ if cur != NULL and cur != _dummy:
my_size += (sizeof_RefList(cur.child_list)
+ sizeof_RefList(cur.parent_list))
return my_size
=== modified file 'meliae/tests/test__loader.py'
--- a/meliae/tests/test__loader.py 2010-07-29 15:50:28 +0000
+++ b/meliae/tests/test__loader.py 2010-07-29 16:03:15 +0000
@@ -216,6 +216,13 @@
moc.add(0, 'foo', 100, children=[1234], parent_list=[3456, 7890])
self.assertSizeOf(4+1024+2+3, moc, extra_size=3*4, has_gc=False)
+ def test__sizeof__with_dummy(self):
+ moc = _loader.MemObjectCollection()
+ moc.add(0, 'foo', 100, children=[1234], parent_list=[3456, 7890])
+ moc.add(1, 'foo', 100, children=[1234], parent_list=[3456, 7890])
+ del moc[1]
+ self.assertSizeOf(4+1024+2+3, moc, extra_size=3*4, has_gc=False)
+
class Test_MemObjectProxy(tests.TestCase):
More information about the bazaar-commits
mailing list