

def build(self, cdata, destructor):
    new_cdata = self.ffi.cast(self.ffi._backend.typeof(cdata), cdata)

    def remove(key):
        old_key = self.data.pop(index)
        assert (old_key is key)
        destructor(cdata)
    key = ref(new_cdata, remove)
    index = object()
    self.data[index] = key
    return new_cdata

dataset/ETHPy150Open cloudera/hue/desktop/core/ext-py/cffi-1.5.2/cffi/gc_weakref.py GcWeakrefs.build/original