bytestring.c: Delete unused buffer methods on `C.ByteString'.
[catacomb-python] / group.c
diff --git a/group.c b/group.c
index 3d29070..5d7c34b 100644 (file)
--- a/group.c
+++ b/group.c
 
 /*----- DH and binary group infos -----------------------------------------*/
 
-PyObject *fginfo_pywrap(gprime_param *dp, PyTypeObject *ty)
+static PyTypeObject *fginfo_pytype, *dhinfo_pytype, *bindhinfo_pytype;
+
+typedef struct fginfo_pyobj {
+  PyObject_HEAD
+  gprime_param dp;
+} fginfo_pyobj;
+
+#define FGINFO_DP(fg) (&((fginfo_pyobj *)(fg))->dp)
+
+static PyObject *fginfo_pywrap(gprime_param *dp, PyTypeObject *ty)
 {
   fginfo_pyobj *z = PyObject_New(fginfo_pyobj, ty);
   z->dp = *dp;
@@ -145,7 +154,7 @@ static PyObject *meth__DHInfo_genlimlee(PyObject *me,
     PGENERR(&exc);
   vec = PyList_New(nf);
   for (i = 0; i < nf; i++)
-    PyList_SetItem(vec, i, mp_pywrap(v[i]));
+    PyList_SET_ITEM(vec, i, mp_pywrap(v[i]));
   xfree(v);
   rc = Py_BuildValue("(NN)", fginfo_pywrap(&dp, dhinfo_pytype), vec);
 end:
@@ -457,11 +466,11 @@ static PyTypeObject bindhinfo_pytype_skel = {
 /*----- General utilities -------------------------------------------------*/
 
 PyTypeObject *ge_pytype, *group_pytype;
-PyTypeObject *primegroup_pytype, *bingroup_pytype, *ecgroup_pytype;
+static PyTypeObject *primegroup_pytype, *bingroup_pytype, *ecgroup_pytype;
 
 group *group_copy(group *g)
 {
-  if (strcmp(G_NAME(g), "prime") == 0) {
+  if (STRCMP(G_NAME(g), ==, "prime")) {
     gctx_prime *gc = (gctx_prime *)g;
     gprime_param gp;
     gp.g = G_TOINT(g, MP_NEW, g->g);
@@ -469,7 +478,7 @@ group *group_copy(group *g)
     gp.q = gc->g.r;
     g = group_prime(&gp);
     MP_DROP(gp.g);
-  } else if (strcmp(G_NAME(g), "bin") == 0) {
+  } else if (STRCMP(G_NAME(g), ==, "bin")) {
     gctx_bin *gc = (gctx_bin *)g;
     gbin_param gb;
     gb.g = G_TOINT(g, MP_NEW, g->g);
@@ -477,7 +486,7 @@ group *group_copy(group *g)
     gb.q = gc->g.r;
     g = group_binary(&gb);
     MP_DROP(gb.g);
-  } else if (strcmp(G_NAME(g), "ec") == 0) {
+  } else if (STRCMP(G_NAME(g), ==, "ec")) {
     gctx_ec *gc = (gctx_ec *)g;
     ec_info ei;
     if ((ei.c = eccurve_copy(gc->ei.c)) == 0)
@@ -560,9 +569,9 @@ PyObject *group_pywrap(group *g)
 {
   PyTypeObject *ty;
 
-  if (strcmp(G_NAME(g), "prime") == 0) ty = primegroup_pytype;
-  else if (strcmp(G_NAME(g), "bin") == 0) ty = bingroup_pytype;
-  else if (strcmp(G_NAME(g), "ec") == 0) ty = ecgroup_pytype;
+  if (STRCMP(G_NAME(g), ==, "prime")) ty = primegroup_pytype;
+  else if (STRCMP(G_NAME(g), ==, "bin")) ty = bingroup_pytype;
+  else if (STRCMP(G_NAME(g), ==, "ec")) ty = ecgroup_pytype;
   else abort();
   return (group_dopywrap(ty, g));
 }
@@ -740,7 +749,7 @@ static PyObject *gemeth_toec(PyObject *me, PyObject *arg, PyObject *kw)
     if (!PyType_Check(cty) || !PyType_IsSubtype(cty, ecpt_pytype))
       TYERR("want subtype of catacomb.ECPt");
     Py_INCREF((PyObject *)cty);
-  } else if (strcmp(G_NAME(g), "ec") == 0) {
+  } else if (STRCMP(G_NAME(g), ==, "ec")) {
     c = eccurve_copy(((gctx_ec *)g)->ei.c);
     cty = (PyTypeObject *)eccurve_pywrap(0, c);
   } else  {