]> granicus.if.org Git - python/commitdiff
Rewritten some pieces of PyNumber_InPlaceAdd() for clarity.
authorGuido van Rossum <guido@python.org>
Fri, 1 Sep 2000 23:27:32 +0000 (23:27 +0000)
committerGuido van Rossum <guido@python.org>
Fri, 1 Sep 2000 23:27:32 +0000 (23:27 +0000)
Objects/abstract.c

index 4e9ed96a60bbf4782d4397c22a0c4fa3027c0208..ef3064b737b7e1f3aeabacead5476740eac12ce6 100644 (file)
@@ -810,28 +810,33 @@ PyNumber_InPlaceAdd(PyObject *v, PyObject *w)
 
        if (PyInstance_Check(v)) {
                if (PyInstance_HalfBinOp(v, w, "__iadd__", &x,
-                                       PyNumber_Add, 0) <= 0)
+                                        PyNumber_Add, 0) <= 0)
                        return x;
        }
-       else if (HASINPLACE(v)
-                 && ((v->ob_type->tp_as_sequence != NULL &&
-                      (f = v->ob_type->tp_as_sequence->sq_inplace_concat)
-                      != NULL)
-                || (v->ob_type->tp_as_number != NULL &&
-                    (f = v->ob_type->tp_as_number->nb_inplace_add) != NULL)))
-               return (*f)(v, w);
+       else if (HASINPLACE(v)) {
+               if (v->ob_type->tp_as_sequence != NULL)
+                       f = v->ob_type->tp_as_sequence->sq_inplace_concat;
+               if (f == NULL && v->ob_type->tp_as_number != NULL)
+                       f = v->ob_type->tp_as_number->nb_inplace_add;
+               if (f != NULL)
+                       return (*f)(v, w);
+       }
 
        BINOP(v, w, "__add__", "__radd__", PyNumber_Add);
 
-       if (v->ob_type->tp_as_sequence != NULL &&
-           (f = v->ob_type->tp_as_sequence->sq_concat) != NULL)
-               return (*f)(v, w);
-       else if (v->ob_type->tp_as_number != NULL) {
+       if (v->ob_type->tp_as_sequence != NULL) {
+               f = v->ob_type->tp_as_sequence->sq_concat;
+               if (f != NULL)
+                       return (*f)(v, w);
+       }
+       if (v->ob_type->tp_as_number != NULL) {
                if (PyNumber_Coerce(&v, &w) != 0)
                        return NULL;
-               if (v->ob_type->tp_as_number != NULL &&
-                   (f = v->ob_type->tp_as_number->nb_add) != NULL)
-                       x = (*f)(v, w);
+               if (v->ob_type->tp_as_number != NULL) {
+                       f = v->ob_type->tp_as_number->nb_add;
+                       if (f != NULL)
+                               x = (*f)(v, w);
+               }
                Py_DECREF(v);
                Py_DECREF(w);
                if (f != NULL)