Skip to content

Commit 77903ad

Browse files
committed
fixing sizeof for hashtables, flags needs 1 byte and not a uint32
1 parent 3291ed1 commit 77903ad

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

pandas/_libs/hashtable_class_helper.pxi.in

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -344,9 +344,11 @@ cdef class {{name}}HashTable(HashTable):
344344

345345
def sizeof(self, deep=False):
346346
""" return the size of my table in bytes """
347-
return self.table.n_buckets * (sizeof({{dtype}}_t) + # keys
348-
sizeof(Py_ssize_t) + # vals
349-
sizeof(uint32_t)) # flags
347+
overhead = 4 * sizeof(uint32_t) + 3 * sizeof(uint32_t*)
348+
for_flags = max(1, self.table.n_buckets >> 5) * sizeof(uint32_t)
349+
for_pairs = self.table.n_buckets * (sizeof({{dtype}}_t) + # keys
350+
sizeof(Py_ssize_t)) # vals
351+
return overhead + for_flags + for_pairs
350352

351353
cpdef get_item(self, {{dtype}}_t val):
352354
cdef:

0 commit comments

Comments
 (0)