diff options
| author | Serhiy Storchaka <storchaka@gmail.com> | 2015-12-24 10:35:59 +0200 | 
|---|---|---|
| committer | Serhiy Storchaka <storchaka@gmail.com> | 2015-12-24 10:35:59 +0200 | 
| commit | 5a57ade58ec5bee85db41b8ce1340ff077781b65 (patch) | |
| tree | 2f8cf61efba46284b2d4437916bc3469d23c0ce3 /Python | |
| parent | a198645fa0f9a9c6183c211955083765dc8ab3a8 (diff) | |
| download | cpython-git-5a57ade58ec5bee85db41b8ce1340ff077781b65.tar.gz | |
Issue #20440: Massive replacing unsafe attribute setting code with special
macro Py_SETREF.
Diffstat (limited to 'Python')
| -rw-r--r-- | Python/_warnings.c | 3 | ||||
| -rw-r--r-- | Python/ceval.c | 6 | ||||
| -rw-r--r-- | Python/compile.c | 3 | 
3 files changed, 4 insertions, 8 deletions
| diff --git a/Python/_warnings.c b/Python/_warnings.c index 9ca83145c9..978bad135c 100644 --- a/Python/_warnings.c +++ b/Python/_warnings.c @@ -680,8 +680,7 @@ setup_context(Py_ssize_t stack_level, PyObject **filename, int *lineno,                      goto handle_error;                  }                  else if (!is_true) { -                    Py_DECREF(*filename); -                    *filename = PyUnicode_FromString("__main__"); +                    Py_SETREF(*filename, PyUnicode_FromString("__main__"));                      if (*filename == NULL)                          goto handle_error;                  } diff --git a/Python/ceval.c b/Python/ceval.c index beabfebc1c..5fa555ed43 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -3214,8 +3214,7 @@ PyEval_EvalFrameEx(PyFrameObject *f, int throwflag)                  Py_INCREF(self);                  func = PyMethod_GET_FUNCTION(func);                  Py_INCREF(func); -                Py_DECREF(*pfunc); -                *pfunc = self; +                Py_SETREF(*pfunc, self);                  na++;                  /* n++; */              } else @@ -4670,8 +4669,7 @@ call_function(PyObject ***pp_stack, int oparg              Py_INCREF(self);              func = PyMethod_GET_FUNCTION(func);              Py_INCREF(func); -            Py_DECREF(*pfunc); -            *pfunc = self; +            Py_SETREF(*pfunc, self);              na++;              n++;          } else diff --git a/Python/compile.c b/Python/compile.c index 4befaa78fc..7631f4e55a 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -1795,8 +1795,7 @@ compiler_class(struct compiler *c, stmt_ty s)      {          /* use the class name for name mangling */          Py_INCREF(s->v.ClassDef.name); -        Py_XDECREF(c->u->u_private); -        c->u->u_private = s->v.ClassDef.name; +        Py_SETREF(c->u->u_private, s->v.ClassDef.name);          /* load (global) __name__ ... */          str = PyUnicode_InternFromString("__name__");          if (!str || !compiler_nameop(c, str, Load)) { | 
