1

いくつかのメモリの問題がある C ライブラリを使用しています。参照カウントを減らすのが早すぎてセグメンテーション違反が発生する場合があることを確認し、オブジェクトのリストを保持して参照カウントを増やすことでこれを回避しました。一方で、参照カウントが多すぎる特定のケースも特定しました。意図的に参照カウントを減らすことで、Python コードからこれらのケースを回避する方法はありますか?

これがハックであり、決してきれいなコードなどではないことは理解していますが、バグのある C ライブラリにどうにか対処する必要があり、C コードのどこに問題があるかを突き止めるよりも簡単なようです (幸いなことに、それは未解決です)。 -source)、修正してから、サポートする必要があるすべてのプラットフォームで再コンパイルします。

4

1 に答える 1

10

ctypes 経由でPy_DecRefを使用します。

import ctypes

_decref = ctypes.pythonapi.Py_DecRef
_decref.argtypes = [ctypes.py_object]
_decref.restype = None

_decref(a_python_object)
于 2013-07-18T20:13:41.070 に答える