summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/runtime/python/pypgf.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/runtime/python/pypgf.c b/src/runtime/python/pypgf.c
index 2f04df4b0..9498ea7b8 100644
--- a/src/runtime/python/pypgf.c
+++ b/src/runtime/python/pypgf.c
@@ -2404,9 +2404,13 @@ pgf_embed_funs(GuMapItor* fn, const void* key, void* value, GuExn* err)
return;
}
- pyexpr->expr = pgf_fun_get_ep(value)->expr;
+ pyexpr->master = (PyObject*) clo->grammar;
+ pyexpr->expr = pgf_fun_get_ep(value)->expr;
+
+ Py_INCREF(pyexpr->master);
if (PyModule_AddObject(clo->object, name, (PyObject*) pyexpr) != 0) {
+ Py_DECREF(pyexpr);
gu_raise(err, PgfExn);
}
}