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) {
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));
}
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));
}