chiark / gitweb /
group.c: Track Catacomb group internals change.
authorMark Wooding <mdw@distorted.org.uk>
Thu, 20 Apr 2017 00:58:05 +0000 (01:58 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 13 May 2017 15:50:38 +0000 (16:50 +0100)
group.c

diff --git a/group.c b/group.c
index 7d5b2576d7c29b092601b0cde461cbb9eb025d0a..ba59a8a749aecd366e3da0583cee7b60b2eb0793 100644 (file)
--- a/group.c
+++ b/group.c
@@ -449,6 +449,12 @@ static PyTypeObject bindhinfo_pytype_skel = {
 PyTypeObject *ge_pytype, *group_pytype;
 PyTypeObject *primegroup_pytype, *bingroup_pytype, *ecgroup_pytype;
 
+#ifdef GROUP_GUTS_MPSTRUCT
+#  define GG_GEN(gg) ((gg)->gen.x)
+#else
+#  define GG_GEN(gg) ((gg)->gen)
+#endif
+
 group *group_copy(group *g)
 {
   if (strcmp(G_NAME(g), "prime") == 0) {
@@ -1122,7 +1128,7 @@ static PyObject *pgget_info(PyObject *me, void *hunoz)
   gctx_prime *gg = (gctx_prime *)GROUP_G(me);
   dp.p = MP_COPY(gg->mm.m);
   dp.q = MP_COPY(gg->g.r);
-  dp.g = mpmont_reduce(&gg->mm, MP_NEW, gg->gen);
+  dp.g = mpmont_reduce(&gg->mm, MP_NEW, GG_GEN(gg));
   return (fginfo_pywrap(&dp, dhinfo_pytype));
 }
 
@@ -1199,7 +1205,7 @@ static PyObject *bgget_info(PyObject *me, void *hunoz)
   gctx_bin *gg = (gctx_bin *)GROUP_G(me);
   dp.p = MP_COPY(gg->r.p);
   dp.q = MP_COPY(gg->g.r);
-  dp.g = MP_COPY(gg->gen);
+  dp.g = MP_COPY(GG_GEN(gg));
   return (fginfo_pywrap(&dp, bindhinfo_pytype));
 }