summaryrefslogtreecommitdiff
path: root/pygtkcompat/generictreemodel.py
diff options
context:
space:
mode:
Diffstat (limited to 'pygtkcompat/generictreemodel.py')
-rw-r--r--pygtkcompat/generictreemodel.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/pygtkcompat/generictreemodel.py b/pygtkcompat/generictreemodel.py
index 1c264901..226dffc1 100644
--- a/pygtkcompat/generictreemodel.py
+++ b/pygtkcompat/generictreemodel.py
@@ -23,6 +23,7 @@ import sys
import random
import collections
import ctypes
+import platform
# GObject
from gi.repository import GObject
@@ -41,9 +42,13 @@ class _CTreeIter(ctypes.Structure):
return ctypes.POINTER(cls).from_address(id(iter) + offset)
-def _get_user_data_as_pyobject(iter):
- citer = _CTreeIter.from_iter(iter)
- return ctypes.cast(citer.contents.user_data, ctypes.py_object).value
+if platform.python_implementation() == "PyPy":
+ def _get_user_data_as_pyobject(iter):
+ raise NotImplementedError("Not yet supported under PyPy")
+else:
+ def _get_user_data_as_pyobject(iter):
+ citer = _CTreeIter.from_iter(iter)
+ return ctypes.cast(citer.contents.user_data, ctypes.py_object).value
def handle_exception(default_return):