chiark / gitweb /
*.c: Be more careful about `PySequence_Size'.
[catacomb-python] / algorithms.c
index 24ebd748af9cbc58a562875f9885c8c61d3200e5..edd73fd8119224577430b7aa7062bc990a58453c 100644 (file)
@@ -138,9 +138,8 @@ static PyObject *keyszset_pynew(PyTypeObject *ty,
   if (!set) set = PyTuple_New(0);
   else Py_INCREF(set);
   if (!PySequence_Check(set)) TYERR("want a sequence");
-  n = PySequence_Size(set);
-  l = PyList_New(0);
-  if (PyErr_Occurred()) goto end;
+  n = PySequence_Size(set); if (n < 0) goto end;
+  l = PyList_New(0); if (!l) goto end;
   if (dfl < 0) VALERR("key size cannot be negative");
   x = PyInt_FromLong(dfl);
   PyList_Append(l, x);
@@ -209,7 +208,7 @@ static PyMemberDef keysz_pymembers[] = {
 static PyGetSetDef keyszany_pygetset[] = {
 #define GETSETNAME(op, name) ka##op##_##name
   GET  (min,                   "KSZ.min -> smallest allowed key size")
-  GET  (max,                   "KSZ.min -> largest allowed key size")
+  GET  (max,                   "KSZ.max -> largest allowed key size")
 #undef GETSETNAME
   { 0 }
 };
@@ -217,7 +216,7 @@ static PyGetSetDef keyszany_pygetset[] = {
 static PyMemberDef keyszrange_pymembers[] = {
 #define MEMBERSTRUCT keyszrange_pyobj
   MEMBER(min, T_INT, READONLY, "KSZ.min -> smallest allowed key size")
-  MEMBER(max, T_INT, READONLY, "KSZ.min -> largest allowed key size")
+  MEMBER(max, T_INT, READONLY, "KSZ.max -> largest allowed key size")
   MEMBER(mod, T_INT, READONLY,
         "KSZ.mod -> key size must be a multiple of this")
 #undef MEMBERSTRUCT
@@ -227,7 +226,7 @@ static PyMemberDef keyszrange_pymembers[] = {
 static PyGetSetDef keyszset_pygetset[] = {
 #define GETSETNAME(op, name) ks##op##_##name
   GET  (min,                   "KSZ.min -> smallest allowed key size")
-  GET  (max,                   "KSZ.min -> largest allowed key size")
+  GET  (max,                   "KSZ.max -> largest allowed key size")
 #undef GETSETNAME
   { 0 }
 };
@@ -1880,7 +1879,7 @@ static PyObject *shakemeth_copy(PyObject *me, PyObject *arg)
   rc->h = *SHAKE_H(me);
   rc->st = SHAKE_ST(me);
 end:
-  return ((PyObject *)me);
+  return ((PyObject *)rc);
 }
 
 static PyObject *shakemeth_get(PyObject *me, PyObject *arg)